android 6.0 Intent 安装apk闪退

Posted 大虾软件

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 6.0 Intent 安装apk闪退相关的知识,希望对你有一定的参考价值。

需求描述:

利用android系统自带的DownloadManager下载apk文件,并且打开安装界面。
问题描述:
关于DownloadManager的使用网上有很多例子,在此不啰嗦。下载完成之后在android6.0(api=23)环境下打开安装界面出现闪退(确认已经在AndroidManifest.xml文件中配置配置权限)。在Android4.4(api=19) 环境下正常。因为只有两台android手机,没有尝试android6.0之前的其他系统。使用代码如下:
public static void install(Context context, String filePath) {
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setDataAndType(Uri.parse("file://" + filePath), "application/vnd.android.package-archive");
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(i);
}

解决过程:

百度一番无果,google一番有了答案。

解决方案:

android6.0(api=23)以后直接打开文件,让系统去判断如何处理。详细解决方案见如下地址:

http://www.jianshu.com/p/d896a09b9aca

原因分析:

API <= 22 com.android.packageinstaller
API >= 23 com.google.android.packageinstaller

http://stackoverflow.com/questions/32211392/packageinstalleractivity-not-found-on-android-m-developer-preview

但是我在上面的代码中加入“intent.setComponent(comp);”之后 在android6.0下面依然闪退。

以上是关于android 6.0 Intent 安装apk闪退的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 之 打包生成的 apk 安装包装到手机上闪退

android intent安装apk

Android apk安装代码

在Android 4.2+上使用intent安装apk时启用降级

带有 Intent.VIEW_ACTION 的 Android 安装 apk 不适用于文件提供程序

Android - 通过意图安装 APK - 对失败做出反应