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

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

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

Android开发关于调用摄像头黑屏没反应的问题_第1张图片

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

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

需要如下设置:

在清单文件配置权限:


代码中设置:

@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);
    }
}

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

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

 

 

 

你可能感兴趣的:(Android)