在Android7.0手机,用老方法调用系统相机拍照,一直抛,FileUriExposedException异常。这是因为,Android 7.0强制启用了被称作 StrictMode的策略,App对外无法暴露file://类型的URI了。用Intent携带这样的URI去打开外部App(比如:打开系统相机拍照),就会会抛出FileUriExposedException异常。官方给出FileProvider,解决方案。
具体使用如下步骤:
1、res目录下创建文件夹xml,并创建file_paths.xml文件,位置如下图:
xml文件名随意
xml文件内容如下:
2、Manifest.xml文件,application标签下:
xxx内容随意,最好是包名,与其他项目不能重名
3、获取Uri方法:
4、系统相机调用方法:
5、申请权限并拍照:
权限申请结果:
6、拍照完成后,返回展示: