我在写一个应用程序。 在应用程序中,我以编程方式下载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的安装 有一个对话框出现:
我希望在安装APK时出现问题(损坏的APK,空间不足等等)。
那么,是否有一种方式(事件或某事)被通知,所以我可以替换 使用我自己的对话框进行“Parse error”defalt对话框?
谢谢!
答案 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;
}