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。
相关推荐
北漂Zachary1 小时前
四大编程语言终极对比
android·java·php·laravel
.Cnn1 小时前
JavaScript 前端基础笔记(网页交互核心)
前端·javascript·笔记·交互
九成宫2 小时前
IT项目管理期末复习——Chapter 10 项目沟通管理
笔记·项目管理·软件工程
23471021272 小时前
4.14 学习笔记
笔记·python·学习
sonnet-10294 小时前
函数式接口和方法引用
java·开发语言·笔记
skylijf4 小时前
2026 高项第 6 章 预测考点 + 练习题(共 12 题,做完稳拿分)
笔记·程序人生·其他·职场和发展·软件工程·团队开发·产品经理
今天你TLE了吗4 小时前
LLM到Agent&RAG——AI概念概述 第二章:提示词
人工智能·笔记·后端·学习
学习使我健康5 小时前
Android App 启动原理
android·android studio
九成宫5 小时前
IT项目管理期末复习——Chapter 9 项目人力资源管理
笔记·项目管理·软件工程
2601_949817925 小时前
大厂Java进阶面试解析笔记文档
java·笔记·面试