Документация
ОС Аврора 4.1.0

Класс SystemUpdate

(Sailfish::Mdm::SystemUpdate)

Класс SystemUpdate предоставляет высокоуровневый API для управления обновлениями ОС. Подробнее…

Подключение: #include <mdm-systemupdate.h>

Публичные типы

  • enum Error { NoError, IOError, NetworkError, MetadataError, ..., UnknownError }
  • enum Method

Свойства

Публичные функции

Публичные слоты

void cancelDownload()
void cancelUpdate()
void clearDownloadedData()
void downloadUpdate(const QString &version, Method method, const QString &vendorDataUrl = {})
void installUpdate()
void scheduleUpdate(QDateTime from, QDateTime to)
void scheduleUpdate(QDateTime from, QDateTime to, bool allowRecharge)
void scheduleUpdate(QTime from, QTime to, bool allowRecharge)

Сигналы

Подробное описание

Класс SystemUpdate предоставляет высокоуровневый API для управления обновлениями ОС.

Доступное обновление ОС может быть подготовлено для установки с помощью SystemUpdate::download(), а затем запланировано для установки в нужное время с помощью SystemUpdate::scheduleUpdate(). Также обновление ОС может быть установлено без отсрочки с помощью SystemUpdate::installUpdate().

Для использования данного класса в qmake-настройки проекта клиента следует добавить следующее:

 CONFIG += link_pkgconfig
 PKGCONFIG += sailfishmdm

и затем #include <mdm-systemupdate.h>.

Пример использования:

 #include <mdm-systemupdate.h>
 void scheduleUpdate(const QString &version,
                     Sailfish::Mdm::SystemUpdate::Method method,
                     const QString &vendorDataUrl,
                     QDateTime from, QDateTime to)
 {
     auto updates = new Sailfish::Mdm::SystemUpdate(this);
     updates->download(version, method, vendorDataUrl);
     QObject::connect(updates, &Sailfish::Mdm::SystemUpdate::readyChanged,
                      = {
                          if (updates->ready())
                              updates->scheduleUpdate(from, to, true);
                      });
     QObject::connect(updates, &Sailfish::Mdm::SystemUpdate::scheduledChanged,
                      = {
                          if (updates->scheduled())
                              qInfo() << "System update is scheduled successfully";
                      });
     QObject::connect(updates, &Sailfish::Mdm::SystemUpdate::error,
                      [](Sailfish::Mdm::SystemUpdate::Error error, const QString &details) {
                          qWarning() << "OS update error:" << error << details;
                      });
 }

Описание типов-членов

enum SystemUpdate::Error

Типы ошибок.

Константа Значение Описание
Sailfish::Mdm::SystemUpdate::NoError 0 Нет ошибки.
Sailfish::Mdm::SystemUpdate::IOError 1 Ошибка файловой системы (например, проблема с уровнем доступа к файловой системе устройства).
Sailfish::Mdm::SystemUpdate::NetworkError 2 Любая сетевая ошибка, кроме аутентификации. (например, сеть отсутствует или сеть не была повторно подключена).
Sailfish::Mdm::SystemUpdate::MetadataError 3 Неверные метаданные. (например, <host>/meta/ или <host>/metav2/ некорректен и не может быть обработан).
Sailfish::Mdm::SystemUpdate::PackageError 4 Ошибка обновления пакета. (например, проблемы с зависимостями, обнаруженные после загрузки данных пакета перед загрузкой самих пакетов).
Sailfish::Mdm::SystemUpdate::DBusError 5 Не удалось установить связь с некоторыми службами D-Bus. Критическая ошибка. (например, некоторые службы dbus не запускаются или работают неправильно).
Sailfish::Mdm::SystemUpdate::SsuError 6 Ошибка протокола SSU. (например, ошибка при аутентификации через SSU — PU не использует этот механизм).
Sailfish::Mdm::SystemUpdate::NotSupportedError 7 Выбранный метод обновления не поддерживается. (например, генерируется ошибка, когда обновление по metav2 не может быть выполнено выбранным способом).
Sailfish::Mdm::SystemUpdate::InternalError 8 Внутренняя ошибка в диспетчере обновлений системы. (например, неправильная последовательность вызовов API).
Sailfish::Mdm::SystemUpdate::BusyError 9 Диспетчер обновлений системы занят другой операцией.
Sailfish::Mdm::SystemUpdate::AuthenticationError 10 Не удалось аутентифицироваться на сервере обновлений. (например, ошибка может быть в случае обновления через сброс при попытке получить образ).
Sailfish::Mdm::SystemUpdate::LowBattery 12 Заряд батареи слишком низкий для обновления ОС. (например, возникает перед попыткой установки обновления. Если для флага allowRecharge установлено значение true, ОС попытается обновиться ещё раз).
Sailfish::Mdm::SystemUpdate::LowDisk 11 Недостаточно места на диске для обновления ОС. (например, оно может быть выдано как перед загрузкой (если размер обновления известен и оно не помещается на устройстве), так и в процессе загрузки (если в процессе загрузки обновления закончилось место, например, пользователь заполнил память в процессе загрузки обновления)).
Sailfish::Mdm::SystemUpdate::NotAvailable 100 Выбранная версия ОС недоступна для обновления.
Sailfish::Mdm::SystemUpdate::ScheduleError 101 Не удалось запланировать обновление ОС. Неверный период времени или пропущенный период времени. (например, недопустимый временной интервал будет, если «от» == «до», затем он будет обработан в клиенте EMM и заменен на «от» = 00:00, «до» = 23:59).
Sailfish::Mdm::SystemUpdate::UnknownError -1 Не должно происходить.

enum SystemUpdate::Method

Какой метод следует использовать для обновления ОС.

Константа Значение Описание
Sailfish::Mdm::SystemUpdate::Any 0 Любой доступный метод.
Sailfish::Mdm::SystemUpdate::PackageUpdate 1 Стандартное обновление с использованием пакетов rpm.
Sailfish::Mdm::SystemUpdate::ResetUpdate 2 Обновление с помощью сброса к заводским настройкам с потерей всех пользовательских данных.

Описание свойств

downloadProgress : const int

Свойство хранит прогресс загрузки в процентах.

Методы доступа:

  • int downloadProgress() const

Сигнал уведомления:

  • void downloadProgressChanged()

lastChecked : const QDateTime

Свойство содержит дату и время последней назначенной проверки обновлений системы.

Методы доступа:

  • QDateTime lastChecked() const

Сигнал уведомления:

  • void lastCheckedChanged()

method : const Method

Свойство содержит выбранный метод обновления системы.

Методы доступа:

  • Метод method() const

Сигнал уведомления:

  • void methodChanged()

progress : const int

Свойство хранит прогресс загрузки в процентах.

Методы доступа:

  • int progress() const

Сигнал уведомления:

  • void progressChanged()

ready : const bool

Истинно, если обновление готово к установке, т. е. SystemUpdate::installUpdate() или SystemUpdate::scheduleUpdate() могут быть вызваны, если для этого свойства установлено значение true.

Методы доступа:

  • bool ready() const

Сигнал уведомления:

  • void readyChanged()

scheduled : const bool

Истинно, если обновление успешно запланировано для установки.

Методы доступа:

  • bool scheduled() const

Сигнал уведомления:

  • void scheduledChanged()

size : const qlonglong

Свойство содержит общий размер доступного обновления. Представляет необходимое дисковое пространство в разделе /home и приблизительный загружаемый размер.

Методы доступа:

  • qlonglong size() const

Сигнал уведомления:

  • void sizeChanged()

version : const QString

Свойство содержит номер версии доступного обновления. Пусто, если обновление не найдено.

Методы доступа:

  • QString version() const

Сигнал уведомления:

Описание функций-членов

SystemUpdate::SystemUpdate(QObject *parent = nullptr)

Создаёт новый экземпляр SystemUpdate с заданным родителем parent.

[slot] void SystemUpdate::cancelDownload()

Отменяет текущую загрузку.

[slot] void SystemUpdate::cancelUpdate()

Отменяет запланированное обновление. Не влияет на уже установленное обновление.

Устанавливает значение scheduled как false.

[slot] void SystemUpdate::clearDownloadedData()

Очищает загруженные данные.

[slot] void SystemUpdate::downloadUpdate(const QString &version, Method method, const QString &vendorDataUrl = {})

Загружает указанное обновление. Также можно указать vendorDataUrl, чтобы также загрузить образ данных поставщика.

Устанавливает значение ready как true в случае успеха.

[signal] void SystemUpdate::error(Error error, const QString &details)

Испускается при ошибке в любых операциях. error определяет код ошибки, а details содержит дополнительную нелокализованную информацию, не предназначенную для показа пользователю.

[slot] void SystemUpdate::installUpdate()

Немедленно устанавливает загруженное обновление. По окончании этой операции устройство будет перезагружено.

[slot] void SystemUpdate::scheduleUpdate(QDateTime from, QDateTime to)

Вызывает внутри устаревший scheduleUpdate(from, to, true).

[slot] void SystemUpdate::scheduleUpdate(QDateTime from, QDateTime to, bool allowRecharge)

Планирует загруженное обновление для установки в указанный временной интервал. Если временной интервал слишком узкий (менее получаса), его можно пропустить, в этом случае будет выдаваться ошибка. Если установлено значение allowRecharge, обновление будет запланировано снова, если оно было отменено из-за ошибки LowBattery.

Устанавливает значение scheduled как true в случае успеха.

[slot] void SystemUpdate::scheduleUpdate(QTime from, QTime to, bool allowRecharge)

Ежедневно планирует загруженное обновление для установки в указанный временной интервал. Если установлено значение allowRecharge, обновление будет запланировано снова, если оно было отменено из-за ошибки LowBattery.

Устанавливает значение scheduled как true в случае успеха.

[signal] void SystemUpdate::versionChanged()

Генерируется при изменении целевой версии обновления.

Примечание — Сигнал уведомления для свойства version.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.