Скачивание обновлений

После подтверждения доступности обновления вы можете запросить у пользователя скачивание обновления, но перед этим необходимо запустить слушатель статуса скачивания обновления, используя метод registerListener().

Пример вызова метода RegisterListener()
RuStoreAppUpdateManager.Instance.RegisterListener(listener);

listener — объект класса, реализующего интерфейс IInstallStateUpdateListener.

IInstallStateUpdateListener
public interface IInstallStateUpdateListener {
 
       public void OnStateUpdated(InstallState state);
}

Объект state описывает текущий статус скачивания обновления и содержит:

  • installStatus — статус установки обновления, если пользователь уже устанавливает обновление в текущий момент времени:
    • DOWNLOADED — загружено. 

    • DOWNLOADING — загружается. 

    • FAILED — ошибка. 

    • INSTALLING — устанавливается. 

    • PENDING — в ожидании. 

    • UNKNOWN — статус по умолчанию. 
  • bytesDownloaded — количество загруженных байт. 
  • totalBytesToDownload — общее количество байт, которое необходимо загрузить. 
  • installErrorCode — код ошибки во время скачивания:
    • ERROR_UNKNOWN — Неизвестная ошибка. 

    • ERROR_DOWNLOAD — Ошибка при скачивании. 

    • ERROR_BLOCKED — Установка заблокирована системой.

    • ERROR_INVALID_APK — Некорректный APK обновления. 

    • ERROR_CONFLICT — Конфликт с текущей версией приложения. 

    • ERROR_STORAGE — Недостаточно памяти на устройстве. 

    • ERROR_INCOMPATIBLE — Несовместимо с устройством. 

    • ERROR_APP_NOT_OWNED — Приложение не куплено. 

    • ERROR_INTERNAL_ERROR — Внутренняя ошибка. 

    • ERROR_ABORTED — Пользователь отказался от установки обновления. 
    • ERROR_APK_NOT_FOUND — apk-файл для запуска установки не найден. 
    • ERROR_EXTERNAL_SOURCE_DENIED — Запуск обновления запрещён. Например, в первом методе вернулся ответ о том, что обновление недоступно, но пользователь вызывает второй метод. 

Если необходимости в слушателе больше нет, воспользуйтесь методом удаления слушателя unregisterListener(), передав в метод ранее зарегистрированный слушатель.
Пример вызова метода UnregisterListener()
RuStoreAppUpdateManager.Instance.UnregisterListener(listener);

Для запуска скачивания обновления приложения вызовите метод StartUpdateFlow().

Объект AppUpdateInfo после однократного использования становится невалидным. Для повторного вызова метода startUpdateFlow() запросите AppUpdateInfo повторно используя метод getAppUpdateInfo().

 

Пример вызова метода StartUpdateFlow()
RuStoreAppUpdateManager.Instance.StartUpdateFlow(
    onFailure: (error) => {
        // Handle error
    },
    onSuccess: (resultCode) => {
        // Handle flow result
    });

Если пользователь подтвердил скачивание обновления, resultCode = UpdateFlowResult.RESULT_OK, если отказался,  resultCode = UpdateFlowResult.RESULT_CANCELED.

После вызова метода вы можете следить за статусом скачивания обновления в слушателе. Если в слушателе вы получили статус DOWNLOADED, вы можете вызвать метод установки обновления. Рекомендуем уведомить пользователя о готовности установки обновления. 

Метод может вернуть ошибку. Подробная информация приведена в разделе Возможные ошибки

 

Обновлено 26 мая 2023 г.
Was this information helpful?