Я использую API обновления Google In-App в Android для обновления приложения навесного оборудования в android.
Вот мой код для проверки обновлений приложения
// Creates instance of the manager.
appUpdateManager = AppUpdateManagerFactory.create(this)
// Returns an intent object that you use to check for an update.
var appUpdateInfoTask = appUpdateManager?.appUpdateInfo
// Checks that the platform will allow the specified type of update.
appUpdateInfoTask?.addOnSuccessListener { updateInfo ->
// For a flexible update, use AppUpdateType.FLEXIBLE
this.appUpdateInfo = updateInfo
Log.e("updateAvailability", "${updateInfo.updateAvailability()}")
if (updateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE)
{
Log.e("FLEXIBLE AppUpdate", "${updateInfo.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)}")
if (updateInfo.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
this.appUpdateManager?.startUpdateFlowForResult(
appUpdateInfo,
AppUpdateType.FLEXIBLE,
this,
MY_REQUEST_CODE
)
this.appUpdateManager?.registerListener { state ->
Log.d("onStateUpdate", state.installStatus().toString());
if (state.installStatus() == InstallStatus.DOWNLOADED) {
Log.d("onStateUpdate", "checkForAppUpdate");
} else if (state.installErrorCode() != null) {
Log.e("Error", "${state.installErrorCode().toString()}")
}
}
}
}
}
В моем случае updateInfo.updateAvailability () == UpdateAvailability.UPDATE_AVAILABLE) возвращает false.
Я проверил это в более низкой версии из текущей версии магазина воспроизведения.