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。
相关推荐
A-花开堪折9 分钟前
RK3568 Android 11 驱动开发(四):添加产品配置和内核设备树选择
android·驱动开发
麒qiqi10 分钟前
ARM 学习笔记:从入门到理解嵌入式系统核心
arm开发·笔记·学习
TheNextByte111 分钟前
如何将照片从Android传输到闪存驱动器
android
JMchen12316 分钟前
Android Activity管理工具类
android·java·学习·移动开发·android-studio
hkNaruto18 分钟前
【AI】AI学习笔记:翻译:langGraph 持久化执行 以及文档部分理解
笔记·学习·microsoft
shix .25 分钟前
spiderdemo-T8字体反扒
android
2501_9011478343 分钟前
多头注意力机制(Multi-Head Attention)知识笔记(附面试核心考点)
笔记·面试·职场和发展
安静的技术开发者1 小时前
ROS 2学习笔记 我的第一个机器人程序——海龟程序
笔记·学习
青小莫1 小时前
C++之模板
android·java·c++
装不满的克莱因瓶1 小时前
Android Studio 的模拟器如何上传本地图片到手机相册
android·智能手机·android studio