有没有一种方法,在 APK 安装失败时收到通知?

5

我正在编写一个应用程序。在这个应用程序中,我会通过程序下载一个APK文件,并启动一个意图来启动APK的安装。

Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "app.apk")),
                "application/vnd.android.package-archive");
        startActivity(intent);

所有功能都正常运行。

但当我尝试启动安装已损坏的APK时,会出现对话框:

enter image description here

我想在安装APK时出现问题(损坏的APK、空间不足等)时得到通知。

因此,是否有一种方式(事件或其他方式)来通知我,以便我可以将“解析错误”默认对话框替换为自己的对话框?

谢谢!

1个回答

5
我不确定这种方法是否适用于所有潜在情况,但我进行了测试,至少对我有效。
我没有找到有关在Android中检测安装错误的信息,因此我尝试预先检测apk文件是否已损坏。
根据这个链接,apks只是带有dalvik代码的jar文件。因此,您可以使用zip解压缩来检测文件是否已损坏以及任何解析包时可能遇到的问题。
boolean corruptedApkFile = false;
try {
     new JarFile(updateFileFullPath); //Detect if the file have been corrupted
} catch (Exception ex) {
     corruptedApkFile = true;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接