Android 7.0系统调用相机崩溃

按照原来代码,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





你可能感兴趣的:(Android)