Тихое обновление

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

Рекомендуем реализовать свой интерфейс для работы с обновлением.

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

Пример вызова метода registerListener()

updateManager.registerListener { state ->
    if (state.installStatus == InstallStatus.DOWNLOADED) {
        // Update is ready to install
    }           
}

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

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

    • DOWNLOADING (2)  скачивается. 

    • FAILED (3)  ошибка. 

    • INSTALLING (4)  устанавливается. 

    • PENDING (5)  в ожидании. 

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

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

Пример вызова метода unregisterListener()

updateManager.unregisterListener(listener)

Для запуска скачивания обновления приложения необходимо вызвать метод startUpdateFlow() с аргументом AppUpdateInfo, полученный в методе getAppUpdateInfo(), и установить тип обновления в AppUpdateOptions в значение SILENT.

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

Пример вызова метода startUpdateFlow()

val appUpdateOptions = AppUpdateOptions.Builder().appUpdateType(SILENT).build()
 
updateManager
    .startUpdateFlow(appUpdateInfo, appUpdateOptions)
    .addOnSuccessListener { resultCode ->
 
    }
    .addOnFailureListener { throwable ->
 
    }

При вызове onSuccessListener с resultCode = Activity.RESULT_OK будет зарегистрирована задача на скачивание обновления.
В данном сценарии может быть вызван только onSuccessListener с resultCode = Activity.RESULT_OK, либо onFailureListener, детальнее со списком ошибок можно ознакомиться в разделе Возможные ошибки.

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

Установка обновления

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

Пример вызова метода completeUpdate()

updateManager
    .completeUpdate()
    .addOnFailureListener { throwable ->
                 
    }

Обновление происходит через нативный инструмент android. В случае успешного обновления приложение закроется. 

На этапе обновления могут возникнуть ошибки. Возможные ошибки

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