上面的写法基本是固定的,很多项都是可以修改,但不建议做,下面只是记录一下。
可修改项 1
android:name=“androidx.core.content.FileProvider”
上面为指定提供服务的 Provider 类。如上是 Android androidx 包提供的类,可以自定义。可以使用ContentProvider提供服务的目标即可。
可修改项 2
android:authorities="${applicationId}.fileProvider"
唯一字符串即可,上面为一般常用的写法。
可修改项 3
android:name=“android.support.FILE_PROVIDER_PATHS”
是可以修改,但是如果没有自己实现 Provider ,这个值只能是这个。这个字符串是在类 FileProvider 里面定义的。
可修改项 4
android:resource="@xml/file_paths"
定义了类 FileProvider 使用的配置文件,文件名字不违法命名规范情况下随意。
增加一个特定的ContentProvider,FileProvider,包名androidx.core.content。
FileProvider 适配文件文件地址 res/xml/file_paths.xml
空文件内容如下
里面的具体配置为,Android Studio 提示为这五个地方。
网站介绍上还有一个
代码里面可以看到还有一个
上面各个 -path 的区别是定义的根目录不同。
| -path | 根目录 |
|---|---|
| files-path | Context.getFilesDir() |
| cache-path | Context.getCacheDir() |
| external-path | Environment.getExternalStorageDirectory() |
| external-files-path | Context.getExternalFilesDir(null) |
| external-cache-path | Context.getExternalCacheDir() |
| external-media-path | Context.getExternalMediaDirs() |
| root-path | / |
Path 节点里面的 name 属性
唯一不重复
Path 节点里面的 path 属性
文件夹名字,自动包括此文件夹下面的子目录
例子:
这样定义后,/sdcard/Pictures 里面的所有文件,都可以从自己的App里面发出到其他App中使用。
如果你进阶的路上缺乏方向,可以加入我们的圈子和安卓开发者们一起学习交流!
Android进阶学习全套手册
Android对标阿里P7学习视频
BATJ大厂Android高频面试题
最后,借用我最喜欢的乔布斯语录,作为本文的结尾:
人这一辈子没法做太多的事情,所以每一件都要做得精彩绝伦。
你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。
最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。
所以每一件都要做得精彩绝伦。
你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。
最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。
本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录



