采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,我添加了FileProvider,不是很懂如何结合在项目中,网上大多资料都调用了系统的相册,可以简单讲解一下吗?
首先你需要明白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??
咱们线上约??哈哈哈哈
好的 谢谢老师 加入了FileProvider报错不一样了。另外 老师您QQ是多少?
756069544 你也可以加群哈,群更好。方便大家交流。
老师,我在Gallery写的getItemViewType方法返回的R2.layout.cell_gallery 运行到封装的recyclerview中的onCreateView的inflate时就一直报错Resources$NotFoundException: Resource ID #0x7f0e001d 请问是否与我导入butterknife后R变为R2有关?
登录后可查看更多问答,登录/注册
客户端+服务端+MVP架构+封装思想+主流框架
1.7k 3
3.1k 6
1.6k 18
1.3k 16
1.5k 16