在“ res ” 文件夹中,新建“xml” 文件夹。然后再“ res/xml ”文件夹中,新建“ file_paths.xml ”文件,用于设置FileProvider的全线路径。
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-media-path name="cache_images" path="C0801"/>
</paths>
表示的路径为 Context.getExternalMediaDirs()+”C0801″,Context.getExternalMediaDirs()的文件夹可以添加到系统相册中并进行展示。
Android7.0(api level 24)禁止对内外部(跨越应用分享)公开file:// ,若使用file://格式共享文件,会抛出FileUriExposedException异常,因此需要使用FileProvider类生成content://类型的URI分享,并且为其提供临时的文件访问权限。
在AndroidManifest.xml文件中使用<provider>标签声明访问路径,具体的路径保存在XML中。在xml文件中使用<paths>作为顶层标签,<paths>子标签指定文件夹。<paths>子标签的name属性石path属性指定路径的替代名称,用于隐藏真实的目录;
<paths>子标签的path属性表示指定路径下的共享目录。常用的<paths>子标签如下:
- <file-path>表示Context.getFilesDir()所指向的目录
- <cache-path>表示Context.getCacheDir()所指向的目录
- <external-path>表示Environment.getExternalStorageDirectory()所指向的目录
- <external-file-path>表示Context.getExternalFileDir()所指向的目录
- <external-media-path>表示Context.getExternalMediaDir()所指向的目录(从 API leval 21 版本开始支持)
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114962.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...