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。
相关推荐
程序员大雄学编程37 分钟前
「深度学习笔记4」深度学习优化算法完全指南:从梯度下降到Adam的实战详解
笔记·深度学习·算法·机器学习
新子y1 小时前
【小白笔记】PyTorch 和 Python 基础的这些问题
pytorch·笔记·python
nvvas1 小时前
Android Studio JAVA开发按钮跳转功能
android·java·android studio
怪兽20141 小时前
Android多进程通信机制
android·面试
rechol2 小时前
类与对象(中)笔记整理
java·javascript·笔记
叶羽西2 小时前
Android CarService调试操作
android
新子y2 小时前
【小白笔记】KNN 核心预测函数 _predict_one 的过程
笔记
千里马-horse2 小时前
在android中 spdlog库的log如何在控制台上输出
android·c++·spdlog
橘子是码猴子2 小时前
LangExtract:基于LLM的信息抽取框架 学习笔记
笔记·学习
Zender Han2 小时前
《从零搭建现代 Android 模块化架构项目(2025 最新实践)》
android·架构