当前位置: 首页 > news >正文

Android FileProvider笔记

一、FileProvider是什么

通过FileProvider.getUriForFile(@NonNull Context context, @NonNull String authority, @NonNull File file)方法获得一个有临时权限的Uri给客户端用来访问本APP文件。

当然看FileProvider类的注释更加详细

二、代码示例

<providerandroid:name="androidx.core.content.FileProvider"android:authorities="com.mydomain.fileprovider"android:exported="false"android:grantUriPermissions="true"><meta-dataandroid:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/file_paths" /></provider>
//file_paths内容
<paths><files-pathname="moon"path="myDir/" />
</paths>
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。
http://www.lryc.cn/news/173017.html

相关文章:

  • 华为云云耀云服务器L实例评测 |云服务器选购
  • 2023-09-22 LeetCode每日一题(将钱分给最多的儿童)
  • 功能测试的重要性
  • 《Linux高性能服务器编程》--高级I/O函数
  • 算法通关村 | 透彻理解动态规划
  • 数据结构(持续更新)
  • nginx部署vue后显示500 Internal Server Error解决方案
  • 微调大型语言模型(一):为什么要微调(Why finetune)?
  • 【GO】网络请求例子
  • 泡泡玛特海外布局动作不断,开启东南亚潮玩盛会
  • uniappAndroid平台签名证书(.keystore)生成
  • Gateway学习和源码解析
  • 移动机器人运动规划 --- 基于图搜索的Dijkstra算法
  • Mybatis SQL构建器
  • 怎么将几张图片做成pdf合在一起
  • 关于JPA +SpringBoot 遇到的一些问题及解决方法
  • ​全国馆藏《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许
  • linux升级glibc-2.28
  • [Go疑难杂症]为什么nil不等于nil
  • C#60个常见的问题和答案
  • 11:STM32---spl通信
  • kafka的 ack 应答机制
  • Django系列:Django开发环境配置与第一个Django项目
  • iPad协议/微信协议最新版
  • URL字符解码
  • uni-app进行表单效验
  • IO流内容总结
  • MySQL的进阶篇1-MySQL的存储引擎简介
  • 九芯电子丨语音智能风扇,助您畅享智慧生活
  • 2101. 引爆最多的炸弹;752. 打开转盘锁;1234. 替换子串得到平衡字符串