代码之家  ›  专栏  ›  技术社区  ›  phoebus

Android-通过intent安装APK-对失败作出反应

  •  0
  • phoebus  · 技术社区  · 8 年前

    我通过以下目的安装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)
    

    我知道,我可以检索程序包添加广播,然后反应的情况下,APK安装。 但是,如果安装失败,我该如何反应?E、 例如,如果APK没有被正确解析(例如,如果它是针对一个不同的架构),或者仅仅是如果用户在请求上单击“取消”?

    startActivityForResult 以及相应的 onActivityForResult 功能,但这似乎是独立于用户的行动,并立即触发时,意图被触发。

    1 回复  |  直到 8 年前
        1
  •  0
  •   JRomero    8 年前

    答案是没有 标准 做这件事的方法。如果你看看 source of the package manager service 您将看到,在不成功的情况下不会广播任何事件。

    理论上你可以做一些事情。。。

    1. 在激活该意图后,当活动/片段恢复时,检查包是否已安装。
    2. 如果您有权限,请检查logcat日志,并分析它们以获得任何包管理器输出。

    这些选项并不完美,也可能不适用于所有实现,但可能会引导您朝着正确的方向前进。

    推荐文章