这是一个已知问题,因为 Google Play 服务存在缓存问题,从而导致 updateAvailability 始终返回 1。为了避免这个问题,可以使用以下步骤来获取更新信息:
AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(context);
Task appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
appUpdateInfoTask.addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(AppUpdateInfo appUpdateInfo) {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE) {
// 更新可用
}
}
});
请注意:更新可用性是根据 updatePriority 和 updateAvailability 来检查的。如果 updateAvailability 始终返回 1,但 updatePriority 不是 0,则可以安全地假定存在更新。
// 更新可用性
if (appUpdateInfo.updatePriority() >= UpdatePriority.IMMEDIATE &&
appUpdateInfo.updateAvailability() == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS) {
// 更新
}