Android 应用内更新检查是AppUpdateType.FLEXIBLE还是AppUpdateType.IMMEDIATE
playstore控制台中是否有配置此值的选项 这是官方文件。代码:Android 应用内更新检查是AppUpdateType.FLEXIBLE还是AppUpdateType.IMMEDIATE,android,in-app-update,google-play-core,Android,In App Update,Google Play Core,playstore控制台中是否有配置此值的选项 这是官方文件。代码: // Creates instance of the manager. AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(context); // Returns an intent object that you use to check for an update. Task<AppUpdateInfo> appUpdateI
// Creates instance of the manager.
AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(context);
// Returns an intent object that you use to check for an update.
Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
// Checks that the platform will allow the specified type of update.
appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
// For a flexible update, use AppUpdateType.FLEXIBLE
&& appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) {
// Request the update.
}
});
在哪里配置上述类型?官方文件上没有相关说明
在AppUpdateInfo.class中:
public final boolean isUpdateTypeAllowed(int var1) {
if (var1 == 0) {
return this.f != null;
} else if (var1 == 1) {
return this.e != null;
} else {
return false;
}
}
其中f
和e
是pendingent
,方法根据它们的值返回true
或false
。更新类型(即时或灵活)在应用程序内设置,而不是在游戏控制台内设置。
首先,只需要进行应用程序更新可用性检查:
appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
如果此检查成功,您需要自己启动更新流
appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.IMMEDIATE,
或
对于这种类型,更新将通过play store overlay安装在后台或阻止视图中
当触发灵活应用程序更新且用户离开应用程序时,您需要在下一次启动时检查灵活更新是在后台运行还是已完成
appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)有什么用途 这是一个非常常见的问题 许多人(包括我自己)将此解释为可以在某个地方动态设置的值,例如在Google Play控制台中
然而,情况似乎并非如此。这是一个本地检查,确定是否满足设备上的条件以显示对话框 如果要动态配置是显示即时更新还是灵活更新,则需要自己提供,例如从后端提供 有关更多信息: 与Play Store上的Live应用程序相比,我已经多次尝试降低
versionCode
也许在下一次更新中,谷歌会解释一下isUpdateTypeAllowed
,因为现在它只是一个模棱两可的调用
由开发人员选择调用哪种类型的更新
模式由应用程序输入代码决定
请参阅以获取更多参考恐怕无法通过游戏控制台远程配置此功能。我们必须在服务器中使用网络API来检查这一点。appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)有什么用?这是为了确保所需的更新类型得到支持。支持方式??他们将很快发布它,请检查:
很快您将能够为您的应用发布指定应用内更新优先级,这将通过应用程序内更新API提供。有关更多详细信息,请参阅Android开发者峰会:https://www.youtube.com/watch?v=_o_q6hatcIs
(此处:)“是否满足设备上显示对话框的条件”-是!我发现,如果在所有打开的都是通知的情况下检查此项,那么即使updateAvailability是UPDATE_AVAILABLE,isUpdateTypeAllowed()也将返回false(在调试器中,您可以看到返回的意图为null)。您需要查看更新是否可用,打开一个活动,然后从那里再次调用API,然后isUpdateTypeAllowed()将返回true,您将能够进行更新。
appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.IMMEDIATE,
appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.FLEXIBLE,
appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)
appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)