API обновления Android в приложении возвращает 0 как доступныйVersionCode & updateAvailability как 1 (UPDATE_NOT_AVAILABLE) - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь реализовать API обновления в приложении, затем in-app-update-api , при отладке приложения с более низкой версией, чем версия Play Store, AppUpdateInfo return availableVersionCode как 0 и updateAvailability как 1 (UPDATE_NOT_AVAILABLE), Примечание: я использовал то же имя пакета и тот же ключ подписи для запуска сборки

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Наиболее вероятная причина в том, что Play Store на вашем устройстве еще не узнал о новом обновлении.

После того, как вы выпустили свое обновление в консоли разработчика Play, информация об этом обновлении не сразу попадает на все устройства; некоторые фоновые задания Play Store на устройстве отвечают за периодическую проверку обновлений для установленных приложений и обновление кэшированной информации на устройстве.

"Но я хочу проверить поведение на своем устройстве сейчас, я не хочу ждать завершения фонового задания, прежде чем смогу проверить. Могу ли я принудительно обновить этот кэш?"

Да, посмотрите на последний пункт раздела «Устранение неполадок» здесь: https://developer.android.com/guide/app-bundle/in-app-updates#troubleshoot Для обновления кеша необходимо: закрыть Play Store; открыть его снова; перейдите в приложение «Мои приложения и игры».

«Нужно ли моим пользователям это делать?»

Нет: ваши пользователи могут просто дождаться запуска фонового задания.

0 голосов
/ 24 мая 2019

У меня тоже была точно такая же проблема, и я ее решил. Вы должны проверить, какой тип контекста вы передаете для создания AppUpdateManager . Кажется, вам нужно передать глобальный контекст приложения при создании AppUpdateManager.

Так что, если вы просто передаете «этот» или какой-либо другой контекст активности, измените его на «Глобальный контекст приложения».

С

AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(this);

до

AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(getApplicationContext());
...