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





评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值