最近做项目,做升级的时候,老出现“解析包异常”的问题。
查了很久,发现问题不在下载流程上。而且只有兼容7.0的时候,会出现这类问题。
所以找了一下,记录一下问题。
Android6.0引入的动态权限控制(Runtime Permissions),Android7.0又引入“私有目录被限制访问”,“StrictMode API 政策”。
问题就出在这:“私有目录被限制访问“。
简单来说,私有目录访问受限制,我想到的解决办法是,放到公有目录下。
将下载目录改成:
intent.setDataAndType(Uri.fromFile(
new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS),
"myApp.apk")),
"application/vnd.android.package-archive");