最近闲来无聊,读了徐宜生的android群英传,里面有两个最后的实例提高,于是便开始了学习,第一个是一个拼图游戏,关于这个项目,我先看了作者的部分代码,大致的结构框架我是看这他的给的源码写的,接下来的几天就要往里面加我自己的东西了,这篇文章我先来讨论一下我遇到的第一个坑吧。
当我们选图片的时候,可以在最后的一个选项中选择手机图库的图片已经进行调用系统的相机进行实时的拍照和照片的使用。
书中给的方法(网上百度可以直接找到)我试过了但是竟然抛出了FileUriExposedException的错误,二话不说,直接进行了百度,原来是这种方法在android7.0中已经不用了,据说是与安全相关的问题挂钩,所以被废掉了(仅在7.0版本)。
但是,在7.0中,系统提供给了我们了另一种实现目的的方法。
废话少说,接下来,我就直接说步骤了。
第一步:
在Manifest.xml文件中添加provider,以及读写权限。
第二步:
对应于meta-data,我们要编写file_paths文件:
在res文件夹中创建一个xml文件夹,将我们的文件放在里面。
第三步:
在activity中编写我们的逻辑代码。
第四步:
重写onActivityvResult()方法,来获得我们的图片;
可以说第三步是区别旧方法和新方法的最主要的地方,如果我们为了迎合一些老android系统,可以在自己的方法中进行一个if_else的逻辑判断,来选择适用于不同系统的更好的方法。
其实,看完网上的文章,再对照自己的项目,我有一个疑问,在添加权限的过程中,网上是要求添加android.permission.CAMERA的权限,但是我添加以后会报错,去掉反而没了问题,我很纳闷,接下来还得寻找我的答案了。