问题:在一个项目开发的过程中,发生摄像头权限申请时,若点击了拒绝摄像头权限,应用程序出现奔溃问题,如下:
解决办法:
需要两种方法同时验证是否具有摄像头使用权限:
方法一:
/**
* 通过系统的检查权限方法检查
*/
public static boolean isCameraGranted(Context context) {
return ContextCompat.checkSelfPermission(context, CAMERA) == PackageManager.PERMISSION_GRANTED;
}
方法二:
/**
* 通过try-cache检查当前状态下摄像头权限,测试当前摄像头能否被使用
*/
public static boolean isCameraCanUse() {
boolean canUse = true;
Camera camera = null;
try {
camera = Camera.open(0);
camera.setDisplayOrientation(90);
} catch (Exception e) {
canUse = false;
}
if (canUse) {
camera.release();
camera = null;
}
return canUse;
}