我正在尝试对我正在编写的应用程序进行编程更新,因为它不是 Google Play 应用程序,我想提供一种进行更新的方法。
我一直在四处寻找,发现在下载更新的 APK 后如何启动 Android 安装程序,但我需要从安装程序中获取结果,告诉我更新是否成功,或者是否被取消由用户。
我在 StackOverflow 上看到了很多关于此的问题,而答案通常涉及使用广播接收器。这样做的问题是它只能接收关于正在安装的包的意图,而不是关于取消安装失败的意图。
我做了一些更多的研究,似乎 Intent API 提供了一些额外功能,例如 Intent.EXTRA_RETURN_RESULT,如果设置为 true,则应该返回安装程序活动的结果——我猜是通过 onActivityResult。不幸的是,这不起作用。有没有人让这个工作/它像这样工作?
这是我目前拥有的准备安装程序活动开始的代码:
Intent installApp = new Intent(Intent.ACTION_INSTALL_PACKAGE);
installApp.setData(downloadedApk);
installApp.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
installApp.putExtra(Intent.EXTRA_RETURN_RESULT, true);
installApp.putExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME, context.getApplicationInfo().packageName);
context.startActivityForResult(installApp, 1);