Android7.0中尝试传递 file:// URI 会触发 FileUriExposedException,因为在Android7.0之后Google认为直接使用本地的根目录即file:// URI是不安全的操作,直接访问会抛出FileUriExposedExCeption异常,这就意味着在Android7.0以前我们访问相机拍照存储时,如果使用URI的方式直接存储剪裁图片就会造成这个异常,
记录一下7.0以后怎么打开本地相册
步骤:1.动态申请权限 打开相册 2. 对选中的图片裁剪并显示出来
6.0之后出现动态申请权限,这里就拿打开本地相册说明,首先必须在清单文件中静态申明对存储空间进行读写操作。
之后,在代码区动态申明,如下:
注意:申请的权限必须在清单文件中注册!!!!!!
这里面的 STORAGE_PERMISSIONS_REQUEST_CODE 参数是自定义的,在调用requestPermissions 方法时候,需要传入一个参数,与onRequestPermissionResult中的参数requestCode对应。
上面2个截图就是动态申请权限,用户点击同意了,则调用openpic方法打开本地相册。
完成后就可以打开相册了。
注意我们打开相册是调用startActivityForResult方法。所以应该有一个返回的方法与之对应,onActivityResult方法
里面的pictureUtils包括对路径的解析,以及图片的裁剪。忘记哪里找到的了。上面的ShareUtils忽略没用到,ImageLoadUtils是一个封装好的类,用来加载图片。并bitmap。gride都可以。