当APK无法安装时,有没有办法得到通知?

时间:2011-12-01 09:06:39

标签: android installation apk

我在写一个应用程序。 在应用程序中,我以编程方式下载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);

一切都运作良好。

但是,当我尝试,例如,启动一个coruupted APK的安装 有一个对话框出现: enter image description here

我希望在安装APK时出现问题(损坏的APK,空间不足等等)。

那么,是否有一种方式(事件或某事)被通知,所以我可以替换 使用我自己的对话框进行“Parse error”defalt对话框?

谢谢!

1 个答案:

答案 0 :(得分:4)

我不是100%确定这种方法是否适用于所有潜在的情况,但我一直在测试,至少对我有用。

我没有找到有关在Android中检测安装错误的信息,因此我尝试先抢先检测apk文件是否已损坏。

根据这个link,apks只是带有dalvik代码的jar文件。因此,您可以使用zip解压缩来检测文件是否已损坏以及解析包的任何问题。

boolean corruptedApkFile = false;
try {
     new JarFile(updateFileFullPath); //Detect if the file have been corrupted
} catch (Exception ex) {
     corruptedApkFile = true;
}