最近的项目中有用到拍照的功能,在使用过程中出现了三星s7 6.0系统调用相机的闪退的情况 后来发现是因为app没有获取到手机相机权限,但是在清单文件中是已经申请的,后来发现我申请的权限所有的都是被禁止的 这个估计是三星手机的安全机制问题 后来查看文档 就在调用相机的时候先检测一下相机权限
/**
* 6.0以上获取相机权限
* http://developer.android.com/training/permissions/requesting.html#perm-request
* @param context
* @return
*/
public static boolean isHasCameraPermission(final Activity context){
int permissionCheck = ContextCompat.checkSelfPermission(context,
Manifest.permission.CAMERA);
if (permissionCheck == PackageManager.PERMISSION_DENIED){
// ToastUtil.showMessage("没有相机权限");
DialogUtils.createDialogBox3(context, "", context.getResources().getString(R.string.setting_camera_tips), context.getResources().getString(R.string.cancel), context.getResources().getString(R.string.setting), new DialogUtils.DialogOnClick() {
@Override
public void leftOnClick() {
}
@Override
public void rightOnClick() {
context.startActivity(new Intent(Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS));
}
});
return false;
// if (ActivityCompat.shouldShowRequestPermissionRationale(context,
// Manifest.permission.CAMERA)) {
//
//
// } else {
// ActivityCompat.requestPermissions(context,
// new String[]{Manifest.permission.CAMERA},
// MY_PERMISSIONS_REQUEST_CAMERA);
// }
// return;
}
return true;
}
这个是在6.0以上系统使用的 使用的时候最好判断下系统版本
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
if (!SystemUtil.isHasCameraPermission(mDialogueActivity)){
return;
}
}
官方文档说明 见以下链接 点击打开链接