Android开发关于调用摄像头黑屏没反应的问题

最近做一个项目,需要用的手机摄像头来扫描微信、支付宝等付款码;但是遇到一个问题;

在Android5.1系统上调用摄像头扫码没有任何问题,打开摄像头也提示让打开权限,如下图所示;

但是在Android8.xx机器上测试就发现调用扫码黑屏,也不提示打开权限配置的对话框;

原因是Android6.0时相机摄像头权限改成了动态权限申请。实际上在xml中加入CAMERA,WRITE_EXTERNAL_STORAGE全向后,直接调用摄像头。此时是没有“检查权限是否授予”,“没有授予再申请权限”的代码的。所以没有打开权限配置的对话框;

需要如下设置:

在清单文件配置权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />

代码中设置:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    CameraManager.init(getApplication());
    requestPermission();
}
/*
 * 校验摄像头权限
 */
private void requestPermission() {
    if (Build.VERSION.SDK_INT >= 23) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
    }
}

再运行程序,发现已经提示打开权限对话框了,问题解决;

注:如有问题可以回复,看到第一时间分析解决,码农不易,感觉对您有用,帮助到您,可否打赏一杯可乐,在此谢过诸位,愿诸君终成大神,前程似锦~~~

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值