一个新的测试机在自动下载升级安装更新版本APP时,报出“解析程序包时出现问题”错误。原因众说纷纭, 一番搜索,下面的回答比较全面:
简单总结:
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 举报,一经查实,本站将立刻删除。