您的位置:首页 > 移动开发 > Android开发

Android 7.0系统调用相机崩溃

2017-03-21 15:25 417 查看
按照原来代码,6.0以上申请权限,有了权限调用相机流程在今天测试的同事给我打破了。

同事拿着个7.0的手机来我旁边,一点拍照就崩溃了。当时有点摸不到头脑。

查看log,抛出了FileUriExposedException异常。

查了半天(半年没写android项目了,一直在做Xamarin.iOS的开发),原来7.0之后你的app就算有权限,给出一个URI之后手机也认为你没有权限。

直接贴出最简单的,不用修改以前我们代码的:

在Application的oncreate方法中:

// 置入一个不设防的VmPolicy(不设置的话 7.0以上一调用拍照功能就崩溃了)
// 还有一种方式:manifest中加入provider然后修改intent代码
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
}

快速解决,但是后期还是修改成下面FileProvider的方式。

正常的FileProvider配置方式,参考文献:

https://developer.android.com/reference/android/support/v4/content/FileProvider.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息