我在写一个应用程序.
在应用程序中,我以编程方式下载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,没有足够的空间等等)时收到通知.
那么,是否有一种方式(事件或其他)被通知,所以我可以替换
使用我自己的对话框“解析错误”defalt对话框?
谢谢!
解决方法:
我不是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;
}