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。
相关推荐
xian_wwq1 小时前
【学习笔记】看参识模型
笔记·学习
闲猫1 小时前
基于RABC的权限控制设计
android
猹叉叉(学习版)1 小时前
【系统分析师_知识点整理】 3.数据库系统
数据库·笔记·软考·系统分析师
李子琪。1 小时前
攀山的人
经验分享·笔记·百度·新浪微博
2501_926978332 小时前
物理学原理和人工智能领域的底层一致性
人工智能·经验分享·笔记·ai写作
努力的lpp2 小时前
2024小迪安全课程第三节复习笔记
笔记·安全
冥王丁B2 小时前
第31章 Prompt 与聊天模型笔记
笔记·python·prompt
左左右右左右摇晃2 小时前
Java笔记——包装类(自动拆装箱)
java·笔记·python
Yeh2020582 小时前
MySQL笔记二
笔记
elseif1233 小时前
CSP-S提高级大纲
开发语言·数据结构·c++·笔记·算法·大纲·考纲