适配android7.0:获取文件的Uri
来源:互联网 发布:千锋大数据视频教程 编辑:程序博客网 时间:2024/06/06 21:38
版权声明:本文为博主原创文章,未经博主允许不得转载。
目录(?)[+]
前言
Android 7.0已经发布很久了,虽然市场份额还不是很高,但是流行起来都是早晚的事,所以适配Android 7.0刻不容缓。
Android 7.0 对系统进行了很多的优化:例如文件访问权限,省电,网络,后台等等,其中最突出的就是应用外的Uri访问。
什么时候会用到Uri的应用外访问呢?举一个简单的例子,下载apk更新,这个时候会调用系统功能来安装这个apk,这就是应用外访问文件,需要传入文件的Uri。
但是这样可能会显得不太安全,万一是什么非常重要的文件就糟糕了,所以Android 7.0对应用外访问的Uri要进行处理加密。
正文
那应该怎么处理这个问题呢?首先我们需要注册ContentProvider,这个就很熟悉了,他可以把数据库的内容分享给其他应用,现在是为了分享文件:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
右击res目录,新建一个名称为xml的目录,,在该目录下新建一个名称为file_paths.xml的文件,修改内容如下
设置分享的路径有三种:
- 1
- 2
- 3
provider注册完了之后,就需要稍微修改一下我们的java代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
在java代码中,我们先判断了当前的手机的系统版本,如果是7.0以下就使用之前的Uri,如果是7.0以上,开始通过Provider来获取加密后的Uri。
最终得到的Uri的格式:
- 1
看来主要是把分享出去的路径进行了加密,不能直接看到文件的完整路径。
总结
ok,解决这个问题就是这么简单,如果是应用内访问文件是不受影响的,例如我们的读取图片之类的操作,由于时间比较紧,写的就比较简单了,之后再写点稍微高逼格一点的东西。
有什么问题可以留言哦。
原文http://blog.csdn.net/u011315960/article/details/70057611
- 适配android7.0:获取文件的Uri
- 适配android7.0:获取文件的Uri
- android7.0 获取uri
- 兼容Android7.0传递图片的URI
- 关于通过uri获取文件的大小
- 获取文件Uri对应的真实路径
- URI获取raw目录下的文件
- android7.0 权限获取
- Android 7.0获取文件Uri适配
- Uri获取文件路径
- Android7.0文件读写(获取拍照结果)笔记
- Android7.0的FileProvider适配
- Android7.0文件共享
- android 获取uri的正确文件路径的办法
- android 获取uri的正确文件路径的办法
- android 获取uri的正确文件路径的办法
- Android通过Uri获取文件的路径的方法
- Android 获取uri的正确文件路径的办法
- C#异常处理
- java 注解annotation的使用,以及反射如何获取注解
- Enum枚举常量
- 病毒自启动方式总结
- BZOJ1002 [FJOI2007]轮状病毒
- 适配android7.0:获取文件的Uri
- 第七周项目一 建立顺序环形队列算法库
- 自然语言处理
- 第四周 项目5- 循环双链表应用
- 第四周—建立单链表算法库
- Rhyme/LinuxStudyNote7.3.3—用户信息修改命令usermod
- RelativeLayout相对布局的各种属性
- 震惊:Android Studio 的kotlin插件,半个月从 1.1.4-3 升级到 1.1.51,这中间更新了多少个版本?
- 本地项目提交到tortoise git