使用FileProvider
来源:互联网 发布:java反射获取类属性值 编辑:程序博客网 时间:2024/06/05 22:43
在Android 7.0,对于私有存贮存在了限制,因此在操作的时候,不能直接通过Uri 了,而是要通过FileProvider可以为你指定的目录下files生成content URI。
(1)
建立自己的FileProvider,因为一个程序中在使用FileProvider时候,可能你调用的第三方的里面也用到了
FileProvider,那么在使用的时候就会存在冲突,建议你在使用时候直接自定义一个:
public class MyFileProvider extends FileProvider {}
(2)
在清单文件中注册:
<provider android:name=".bases.MyFileProvider" android:authorities="mooc.zhihuiyuyi.com.mooc.provider" android:exported="false" android:grantUriPermissions="true" tools:replace="android:authorities" > <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/files_names" tools:replace="android:resource" /> </provider> /***android:name 它的值是固定的,是你的FileProvider,也可以用系统的自带的 android:authorities:属性的值必须要和代码中使用的时候一样。 <meat - data >标签用来指定Uri的共享路径。并且引用了一个@xml/file_paths资源*/
(3)
建立资源文件
在res - New - Directory - xml目录 - New - File
<paths xmlns:android="http://schemas.android.com/apk/res/android"> <!--填写你要所要申请访问的目录地址,name最好是你的目录名,path是你要申请的目录--> <external-path name="camera_photos" path="." /> <external-path name="cache" path="Android/data/com.xuezj.fileproviderdemo/cache" /> <external-path name="images" path="Pictures/" /> <external-path name="dcim" path="DCIM/" /></paths>/**在这里面,name 可以随便填,path 属相表示共享的具体路径。*/
(4)
使用:
uriP = FileProvider.getUriForFile(MineStudentFragment.this.getContext() , "mooc.zhihuiyuyi.com.mooc.provider" , tempFile); /**这里的参数二和清单文件注册时候的android:authorities一致*/
(5)
权限,还是需要的。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
阅读全文
0 0
- FileProvider使用
- FileProvider使用
- 使用FileProvider
- 使用FileProvider共享文件
- FileProvider控件的使用
- FileProvider的使用
- 7.0fileprovider的使用
- 使用FileProvider共享文件
- Android FileProvider的使用
- FileProvider
- FileProvider
- FileProvider
- Android 7.0 FileProvider的使用
- Android 7.0 FileProvider的使用
- Android 7.0 FileProvider的使用
- Android7.0使用FileProvider安装apk
- android 拍照使用fileprovider遇到的坑
- Android7.0 使用FileProvider 共享文件
- Android子线程更新UI的方法
- 在 Ubuntu 14.04 安装 MySQL 5.7 和 Python 2.7.12
- leetcode 167. Two Sum II
- 事件机制
- [lintcode]-链表 删除链表中的元素
- 使用FileProvider
- git 分支管理
- Js语法
- 机器学习第三周(二)--Cost function--Gradient descent
- C#存取XML文件
- pool池
- Oracle权限汇总(一)
- CentOS7.2 的vim安装
- 利用ctypes获取numpy数组的指针