我通过以下意图安装APK:
val apkUri = Uri.fromFile(apkFile)
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(apkUri, "application/vnd.android.package-archive")
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent)
我知道我可以检索PACKAGE_ADDED广播,然后在安装APK的情况下做出反应。 但是,如果安装失败怎么办?例如。是因为APK解析不正确(例如,如果是针对其他架构的APK)还是仅仅是用户在请求上点击了“取消”?
我也尝试了startActivityForResult
和相应的onActivityForResult
函数,但这似乎与用户操作无关,并且在激发意图时立即被触发。
答案 0 :(得分:0)
答案是,没有标准的方法。如果您查看source of the package manager service,将会发现没有成功广播的事件。
理论上您可以做一些事情...
这些选项并不是完美的,可能无法在所有实现上都起作用,但可能会引导您朝着正确的方向前进。