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 小时前
c++ 学习笔记之 模板元编程
c++·笔记·学习
九成宫1 小时前
计算机网络期末复习——第3章:运输层 Part One
网络·笔记·计算机网络·软件工程
·云扬·1 小时前
【实操教程】Excel文件转CSV并导入MySQL的完整步骤
android·mysql·excel
xian_wwq1 小时前
【学习笔记】网络安全L3级模型功能解析
笔记·学习·安全
触想工业平板电脑一体机1 小时前
【触想智能】工业触控一体机在船舶海运设备上应用的特点和具体场景分析
android·网络·计算机外设·电脑·智能电视
逑之1 小时前
C语言笔记2:C语言数据类型和变量
c语言·开发语言·笔记
Change_JW1 小时前
reserved mem addr & size
android
汤面不加鱼丸1 小时前
android实践:生成.9.png图片
android
叶羽西1 小时前
下载Android源代码
android
kixixx2 小时前
如何解决安装Mingw64后simulink仍无法加速仿真的问题
笔记