美文网首页
android 6.0 以后的调用相机拍照权限管理

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

作者: 心中有梦丶身边有你 | 来源:发表于2017-07-31 10:01 被阅读0次

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

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

    然后就直接调用,比如:

    //调用相机
    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 以后的调用相机拍照权限管理

          本文链接:https://www.haomeiwen.com/subject/pzullxtx.html