Android:FileProvider学习和使用

本文章借鉴学习了https://www.jianshu.com/p/bce6a4c779dd?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-friends

Android 7.0之后规定APP之间不能再用File://这种方式来传递一个File,否则将出现此异常FileUriExposedException。但是同时也给出了解决方案,就是通过FileProvider来传递,通过content://模式。因为自己做的项目里面需要用到,并且自己学习了一下如何适配FileProvider,因此记录一下。

项目中需要将自己相机所拍的照片保存以及取出功能,下面是自己使用FileProvider的例子。

图1

记得要加上临时权限:

图2

同时,在权限清单文件中要加入下图代码

图3

authorities属性表示授权者,格式为:[appId].fileprovider;

exported由于源代码设置只能为false;

grantUriPermission是对uri授权权限,必须为true。

并且,需要在.xml文件夹下配置以下文件。

图4

<root-path/>:设备的根目录new File("/");

<files-path/>:代表context.getFilesDir();

<cache-path/>:代表context.getCacheDir();

<external-path/>:代表Environment.getExternalStorageDirectory;

<external-files-path/>:代表context.getExternaFilesDir();

<external-cache-path/>:代表getExternalCacheDirs();

在以上三个部分中,需要注意的是:必须保证图1中的authorities属性和图3中的authorities属性一致,否则报错。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容