gpt4 book ai didi

android - appUpdateInfo.isUpdateTypeAllowed (AppUpdateType.IMMEDIATE) 在 Android In-App Update API 中的作用是什么?

转载 作者:IT老高 更新时间:2023-10-28 13:43:05 25 4
gpt4 key购买 nike

我已经在 Android 中关注应用内更新 API 已有一段时间了,但我找不到以下行的任何相关性:

appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)

--

appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)

isUpdateTypeAllowed() 方法已在 Android 文档中的以下代码段中使用:https://developer.android.com/guide/app-bundle/in-app-updates#update_readiness .此外,上述两个方法调用在所有情况下都返回 true,我无法找到上述两个方法调用中的任何一个返回 false 的情况。

最佳答案

当 Playstore 上有新的更新并且设备上的当前应用版本低于 Playstore 上的应用版本时,这些方法将始终返回 true。要确定更新是灵活的还是立即的,我们需要在远程配置中为灵活或立即更新设置一个标志,例如 {"upgradeType":0/1} 其中 0 = FLEXIBLE 和 1 = IMMEDIATE。目前我们在 Playstore 控制台中没有任何选项可以在发布构建时为 FLEXIBLE 或 IMMEDIATE 更新设置标志,因此现在我们可以使用远程配置设置标志并确定更新是 FLEXIBLE 还是 IMMEDIATE,可能在未来 Playstore 将提供设置标志以识别更新类型的选项。

代码:

val jsonObject=JSONObject(FirebaseConfig().getStringConfig(RemoteConfigConstants.KEY_APP_UPGRADE))
updateFlag = jsonObject.getInt(JsonConstants.UPGRADE_TYPE)

private fun checkForInAppUpdate() {
appUpdateManager = AppUpdateManagerFactory.create(this)
appUpdateManager.appUpdateInfo.addOnSuccessListener {
if ((it.updateAvailability() === UpdateAvailability.UPDATE_AVAILABLE))
{
if (updateFlag == 0 && it.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
requestUpdate(it)
appUpdateManager.registerListener(this@HomeActivity)
} else if (it.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) {
requestUpdate(it, AppUpdateType.IMMEDIATE)
}
}
}
}

这里的 updateFlag 值是我们从远程配置中获取的特定类型更新的值。

关于android - appUpdateInfo.isUpdateTypeAllowed (AppUpdateType.IMMEDIATE) 在 Android In-App Update API 中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56377914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com