老师,我添加了FileProvider,不是很懂如何结合在项目中,网上大多资料都调用了系统的相册,可以简单讲解一下吗?

来源:4-15 图片选择器功能实现-4

jack_ZhangZhang

2019-03-06

老师,我添加了FileProvider,不是很懂如何结合在项目中,网上大多资料都调用了系统的相册,可以简单讲解一下吗?

写回答

1回答

Qiujuer

2019-03-06

首先你需要明白FileProvider是Android7新增的限制。

在7以前的版本中,一个app可以任意的访问用户的手机存储,所以可以在手机的SD存储区域存储大量的数据,而用户往往还并不知道。

国内很多厂家从5开始渐渐加上了文件权限,但是也并不形成规范。


所以Google从7开始就加入了FileProvider这个东西,这个东西的主要作用在于向用户申请存储权限的时候告诉用户我要申请那个位置的读写权限,以及我用权限来做什么。


当然FileProvider并不仅仅只是这个作用,他更多的作用是用以实现多个进程之间传递数据,比如你访问文件可以直接通过path路径来,但是Google更推荐使用FileProvider的方式去访问,这样的方式你并不是直接读取文件,而是告诉系统的底层文件管理器说你要读取文件,然后数据也是文件管理器给你返回的数据;这样的好处是可以经过一次系统管理器,系统有更多的权限来管理,规范化。

当然FileProvider并不光是你访问系统,也可以是你给其他程序提供访问的入口;比如你可以告诉微信你要分享图片,至于这个图片从哪儿来具体的路径是什么微信不必关心,微信只需要知道你给他提供的FileProvider可以帮助他读取图片数据就行了。

https://developer.android.com/reference/android/support/v4/content/FileProvider

只是官方文档,你可以看看。


我这里就不贴例子了,因为例子其实大同小异,我给你找一个比较好的例子吧:

https://www.jianshu.com/p/495b0e0564f9

当然这个其实也只是总结,并为有一些理论的阐述,这个只能自己加深一下理解喽。

实在不行,那就私聊我QQ??

咱们线上约??哈哈哈哈

0
4
Qiujuer
回复
jack_ZhangZhang
依然用R就好,不用R2
2019-03-06
共4条回复

手把手开发完整的即时通讯App 客户端+服务端+MVP架构

客户端+服务端+MVP架构+封装思想+主流框架

1749 学习 · 872 问题

查看课程