微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android APP升级时解析程序包时出现问题

一个新的测试机在自动下载升级安装更新版本APP时,报出“解析程序包时出现问题”错误。原因众说纷纭, 一番搜索,下面的回答比较全面:

https://stackoverflow.com/questions/39147608/android-install-apk-with-intent-view-action-not-working-with-file-provider

简单总结:

1. 安卓7以下一般问题不大

2. 安卓7及以上需要使用FileProvider

3. 安卓7.1 需要在清单中增加 REQUEST_INSTALL_PACKAGES 权限

4. 安卓8  需要授权允许应用安装未知应用,在应用权限中设置。(此次问题)

 

另, 

1. 注意检查是否有外存储器的读写权限, 如果没有就无法正常下载程序。

2. 应用权限是否被允许"安装未知应用",可以如下这样判断, 坑:但targetSdkVersion需要至少为26,否则下面的方法永远返回false;

this.getPackageManager().canRequestPackageInstalls()

判断后可以帮助用户跳转到设置页面引导用户设置,也可以让用户自行通过系统设置的应用权限管理设置。

Intent unkNownAppSourceIntent = new Intent()
.setAction(Settings.ACTION_MANAGE_UNKNowN_APP_SOURCES)
.setData(Uri.parse(String.format("package:%s",MainOneActivity.this.getPackageName())));

startActivityForResult(unkNownAppSourceIntent, UNKNowN_APP_INSTALL);

 

一些定制android系统高于安卓8不进行步骤四,也是可以安装的,而有些则不可以。 唉,安卓的碎片化~。。。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐