Android FileProvider笔记

一、FileProvider是什么

通过FileProvider.getUriForFile(@NonNull Context context, @NonNull String authority, @NonNull File file)方法获得一个有临时权限的Uri给客户端用来访问本APP文件。

当然看FileProvider类的注释更加详细

二、代码示例

XML 复制代码
<provider
     android:name="androidx.core.content.FileProvider"
     android:authorities="com.mydomain.fileprovider"
     android:exported="false"
     android:grantUriPermissions="true">
     <meta-data
         android:name="android.support.FILE_PROVIDER_PATHS"
         android:resource="@xml/file_paths" />
 </provider>
XML 复制代码
//file_paths内容
<paths>
	<files-path
            name="moon"
            path="myDir/" />
</paths>
java 复制代码
File dir = new File(context.getFileDir(),"myDir");
FIle file = new File(dir,"my.png");
Uri contentUri = getUriForFile(getContext(), "com.mydomain.fileprovider", file);
//得到的就是: content://com.mydomain.fileprovider/moon/my.png

三、冲突解决

  1. 当多个SDK都包含androidx.core.content.FileProvider,并且authorities相同时,可以采用把多个SDK的file_paths文件内容合并的方式处理。
  2. 当多个SDK都包含androidx.core.content.FileProvider,并且authorities不同时,可以采取自定义FileProvider的方式,每个file_paths对应一个FileProvider。
相关推荐
回忆彡美好1 分钟前
OpenGL的3D编程个人笔记之材质贴图
笔记·3d·材质·opengl
一个平凡而乐于分享的小比特25 分钟前
UCOSIII内核 VS FreeRTOS内核
笔记·freertos·ucosiii
星轨初途1 小时前
C++入门(算法竞赛类)
c++·经验分享·笔记·算法
n***26561 小时前
MySQL JSON数据类型全解析(JSON datatype and functions)
android·mysql·json
t***82111 小时前
mysql的主从配置
android·mysql·adb
prog_61031 小时前
【笔记】和各大AI语言模型写项目——手搓SDN后得到的经验
人工智能·笔记·语言模型
星轨初途2 小时前
C++的输入输出(上)(算法竞赛类)
开发语言·c++·经验分享·笔记·算法
再睡一夏就好3 小时前
string.h头文件中strcpy、memset等常见函数的使用介绍与模拟实现
c语言·c++·笔记·string·内存函数·strcpy
YF02113 小时前
Frida如何稳定连接PC端跟Android手机端
android·mac·xposed
('-')3 小时前
《从根上理解MySQL是怎样运行的》第十三章笔记
数据库·笔记·mysql