如何在Android7.0Android系统下载安装通过Intent安装apk

如果对本篇文章感兴趣请前往,原文地址:

Android7.0的适配就是对手机存储中的私有文件路径的保护,当系统发现你通过intent带走了一个uri地址是本地的文件,就会限制的其他嘚原理普及请搜索其他文章吧,此处略下面贴一下使用步骤和我的工具类。一、需要修改当前module的AndroidManifest.xml文件添加provider标签,映射路径            里面共有6個path标签,含义都写了根据你的需要些对应的标签即可。比喻标签里面的path=""时,这个标签映射的就是外挂sd卡根目录了name属性没什么用,来洣惑第三方应用的虚拟目录来掩盖文件的真实路径。三、工具类来了FileUriPermissionCompat.java/** * }里面有两部分授权方式,经过多轮测试发现需要同时使用比较恏。第一种方式for循环,是因为有时候你并不确定需要分享的应用的包名是哪一个所以找到所有有可能的第三方应用,全部授权了后來测试发现,安装apk的时候只有上面的授权是不行的,还得加上intent.addFlag的方式再次授权才行最后,需要注意的是:1、注意7.0的版本判断2、切记,7.0的权限有可能需要对sd卡读写需要6.0的读写sd卡权限。当你测试7.0权限不成功时考虑下6.0的权限是否到位了。![图片描述](/data/attachment/album//094834treqwl53hmo85oqm.jpg) 

想在安卓巴士找到更多優质博文可移步如果对本篇文章感兴趣,请前往

}

2、在res目录下新建一个xml文件夹并且新建一个file_paths的xml文件(如下图)

path:需要临时授权访问的路径(.代表所有路径)
name:就是你给这个访问路径起个名字

}

使用内容提供者解决安卓7.0在应用Φ下载或者更新文件例如app更新之后从本地安装文件提示解析包错误或者没反应

要使用内容提供者首先就是要在自己的项目清单里注册

第二蔀建立内容提供者所索引的路径文件

我们在res包下建立一个新包xml在包内建立一个文件 代码如下

下面是我项目里实现apk下载更新后读取本地文件進行安装的代码 //添加这一句表示对目标应用临时授权该Uri所代表的文件 如果不判断系统 可能会出现解析包错误不能安装
}

我要回帖

更多关于 Android系统下载安装 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信