我正在实现在Google I / O 2019上宣布的新 AppUpdateManager ,由于某种原因,它并非每次都起作用。
我可以确认它确实显示了一次或两次,但是当我稍后尝试在另一台设备上对其进行测试时,它却无法正常工作。
我如何测试AppUpdateManager,我用降级的版本代码安装了该应用程序,并确保其构建类型与生产版本相同。
这是我的实现方式:
private val appUpdateManager by lazy { AppUpdateManagerFactory.create(this) }
private val appUpdateInfo: Task<AppUpdateInfo> by lazy { appUpdateManager.appUpdateInfo }
private fun checkIfAnUpdateExists() {
appUpdateInfo.addOnCompleteListener {
if (it.result?.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
&& it.result?.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE) == true) {
appUpdateManager.startUpdateFlowForResult(
appUpdateInfo.result,
AppUpdateType.FLEXIBLE,
this,
REQUEST_CODE_UPDATE_APP
)
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (resultCode == Activity.RESULT_OK) {
if (requestCode == REQUEST_CODE_UPDATE_APP) {
val snackBar = Snackbar.make(dl_main_app,
getString(R.string.an_update_has_been_downloaded),
Snackbar.LENGTH_INDEFINITE)
snackBar.setAction(getString(R.string.Restart)) {
run {
appUpdateManager.completeUpdate()
}
}
snackBar.show()
}
}
}
我想对此尚无任何疑问,如果有人可以指导我完成这项工作,那将非常有帮助。