在使用google的新功能应用程序更新时,我注意到它似乎返回了旧的(以前的)更新信息,而不是正确的最新信息。
Android前段时间推出了新的强制更新功能:https://developer.android.com/guide/app-bundle/in-app-updates调用应用内更新
使用它时,我注意到,当根据谷歌的教程获取应用程序更新信息时,返回的应用程序版本代码有时与商店中可用的应用程序版本代码不是最新的(有以前的更新信息)。它看起来很像我们在代码中请求的应用程序更新信息是从缓存中获取的,而不是真实的的Google Play商店服务。
val appUpdateManager = AppUpdateManagerFactory.create(context)
val appUpdateInfoTask = appUpdateManager.appUpdateInfo
appUpdateInfoTask.addOnCompleteListener { task ->
when {
task.isSuccessful -> {
val appUpdateInfo = task.result
//the successful app update info may have old (previous) info
[...]
}
[...]
}
}
当我们决定激活强制更新流应用程序将被更新到错误的版本,即使商店中有可用的更高版本的应用程序。
更深入地探索这个主题,我发现,当通过Google Play商店对任何其他应用执行更新时,我们的操作将触发缓存刷新,下次应用内更新流将返回正确的值和更新以正确的应用更新。
有没有人知道如何获得正确的(最新的)可用的应用程序版本代码通过应用程序内更新或强制刷新播放存储缓存编程?
更新:
我有一个变化,与谷歌开发人员谈论这个案件的一个会议.从他说,有没有办法触发编程Google Play的列表更新(有关可用更新的信息)-用户必须手动输入,然后列表更新.谷歌播放的缓存持续24小时,我被告知谷歌播放应该刷新它的列表,然后.
1条答案
按热度按时间qgelzfjb1#
该高速缓存必须过期。它持续24小时,然后再次检查更新。
以编程方式清除
Google Play Store
缓存。代码获取
Google Play Store
包信息并删除所有缓存。以编程方式强制
Google Play Store
刷新。代码启动
Google Play Store
,触发应用程序刷新并更新信息。此方法不适用,因为用户与
Google Play Store
有交互。使用
Google Play Developer API
并通过编程方法提供访问。您必须为API
设置身份验证和授权。实现缓存系统。您需要通过一种机制来管理缓存,以存储应用的更新信息。在此解决方案中,您必须管理该高速缓存。使用
OkHttp
或Retrofit
来实现缓存机制。使用第三方库,如:
In-App Update Manager
、AppUpdater
、UpdateChecker
。库有一个简单的界面来管理应用程序,以避免缓存问题。
这些方法对我来说很有用。在部署到prod之前使用并测试它们。