android 6.0 以后的调用相机拍照权限管理

以前我们做android是直接在AndroidManifest里面加上


然后就直接调用,比如:

//调用相机
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
if (isExistSd()) {
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(new File(Environment.getExternalStorageDirectory(),fileName)));
}
startActivityForResult(intent,REQUEST_TO_CAMERA);

但是自从6.0以后,就不行了,需要给它增加权限才可以调用。
实现的方法很简单就是在需要调用到以上授权的时候判断一下。如果没有授权就弹出MaterialDialog提示用户进行授权。
话不多说,上代码

//调用相机
                    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
                    if (isExistSd()) {
                        intent.putExtra(MediaStore.EXTRA_OUTPUT,
                                Uri.fromFile(new File(Environment.getExternalStorageDirectory(),fileName)));
                    }
                    if (Build.VERSION.SDK_INT >= 23) {
                        int checkCallPhonePermission = ContextCompat.checkSelfPermission(MaiChe_XiangQing.this,
                                Manifest.permission.CAMERA);
                        if(checkCallPhonePermission != PackageManager.PERMISSION_GRANTED){
                            ActivityCompat.requestPermissions(MaiChe_XiangQing.this,new String[]{Manifest.permission.CAMERA},222);
                            return;
                        }else{
                            startActivityForResult(intent,REQUEST_TO_CAMERA);
                        }
                    } else {
                        startActivityForResult(intent,REQUEST_TO_CAMERA);
                    }

这样就ok了。

你可能感兴趣的:(android 6.0 以后的调用相机拍照权限管理)