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下面依然闪退。

时间: 2024-10-22 13:48:49

android 6.0 Intent 安装apk闪退的相关文章

Android 8.0+ 更新安装apk失败的问题

最近做项目发现Android 8.0+ 更新安装apk时 出现安装失败的情况  总结原因是 缺少安装的权限 Android 8.0 (Android O)为了针对一些流氓软件引导用户安装其他无关应用.在应用权限设置的"特殊访问权限"中,加入了"安装其他应用"的设置. 简单的方法  可以直接在Manifest.xml中加入下面的权限:(亲测可用) <uses-permissionandroid:name="android.permission.REQU

Android 8.0版本安装谷歌四件套

Android 8.0版本安装谷歌四件套可以玩苹果的游戏 com.google.android.gsf,是 Google Services Framework.com.google.android.gsf.login,是 Google Account Manager.com.google.android.gms,是 Google Play services.com.android.vending, 是 Google Play 商城. Google play商店.apkgoogle 框架服务.ap

islide插件安装过程闪退

islide插件安装过程闪退 iSlide是一款基于PowerPoint的插件工具,能够兼容office. 问题 在安装过程中闪退了,打开菜单时又发现安装完成,但是在office2019的PPT选项中,按照官方的方法加载失败,显示 加载COM加载项时出现运行错误,错误在adxloader.dll中 解决方法 定位到 C:\Windows\assembly\GAC_MSIL\office 文件夹下,重命名下面的文件夹后缀加上.bak 定位到 C:\Windows\assembly\GAC_MSIL

android intent安装apk

/** * 安装apk * * @param context * @param apkPath */ public static void installApk(Context context, String apkPath) { try { /** * provider * 处理android 7.0 及以上系统安装异常问题 */ File file = new File(apkPath); Intent install = new Intent(); install.setAction(In

android studio安装后闪退

最近想把以前项目的android代码工程从Eclipse 转移到android studio中,下载谷歌最近的android studio安装包2.3版本安装后,打开android studio,程序闪退,在网上也找了好多答案,可是一一试过后,都不能用,最近FQ到google,搜索,找到问题原因,原因是JDK版本太低,我本机原来的JDK版本是1.7,随后下载安装JDK1.8,安装后,可以正常打开android studio. 转载此文,请注明来源,谢谢

Android 在代码中安装 APK 文件

废话不说,上代码 private void install(String filePath) { Log.i(TAG, "开始执行安装: " + filePath); File apkFile = new File(filePath); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (Build.VERSION.SDK_INT >

我的Android进阶之旅------&gt;解决Android Studio编译后安装apk报错:The APK file does not exist on disk

1.错误描述 今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示: The APK file build\outputs\apk\OYP_2.3.4_I2Base_6476_official_debug.apk does not exist on disk. Error while Installing APK 如下图所示 2.解决方法 1.尝试了Build -> Clean Project再编译,还是无效 2.尝试重启Android Studio无效 然后我去打

eclipse安装之后闪退解决方法

eclipse安装之后,我们已经设置好了java的环境变量,但是还是出现闪退,解决办法如下: 打开eclipse文件夹找到eclipse.ini文件,如图所示. 用记事本打开,如图所示. 将1024改为512即可.原因是电脑内存不足.

Android加密有些机型引发的闪退

加密使用的2d自带加密./frameworks/cocos2d-x/external/xxtea 因为 接sdk的时候,引用了一个sdk的lua 文件.查看之后,编码格式是 utf-8(with BOM )引发的闪退bug 机型:有些低版本的机型,主要Android系统版本是5.1 机型如魅族mx5 .金立金刚等 解决方案1: 方案2 : 把所有文件 改为 utf8