请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

1回答

Qiujuer 2019-03-06 18:31:16

首先你需要明白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 回复 有任何疑惑可以回复我~
  • 提问者 jack_ZhangZhang #1
    好的 谢谢老师 加入了FileProvider报错不一样了。另外 老师您QQ是多少?
    回复 有任何疑惑可以回复我~ 2019-03-06 19:08:25
  • Qiujuer 回复 提问者 jack_ZhangZhang #2
    756069544
    
    你也可以加群哈,群更好。方便大家交流。
    回复 有任何疑惑可以回复我~ 2019-03-06 19:47:24
  • 提问者 jack_ZhangZhang 回复 Qiujuer #3
    老师,我在Gallery写的getItemViewType方法返回的R2.layout.cell_gallery 运行到封装的recyclerview中的onCreateView的inflate时就一直报错Resources$NotFoundException: Resource ID #0x7f0e001d 请问是否与我导入butterknife后R变为R2有关?
    回复 有任何疑惑可以回复我~ 2019-03-06 21:38:03
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信