Androidは自分のアプリに必要な権限が与えられているかどうかをどのように検出します

1706 ワード

シーン:Appは位置決め権限、またはファイルの読み取り権限が必要で、権限を申請しましたが、ユーザーが拒否しました.対応する操作としてその権限があるかどうかをチェックし、ない場合はプロンプトウィンドウをポップアップして、ユーザーに設定させます.
質問:対応する権限があるかどうかを検出する方法
ソリューション:
//     ,             
//checkSelfPermission   
//      Context
//                     

       
PackageManager.PERMISSION_GRANTED//    
PackageManager.PERMISSION_DENIED//    

ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED
例:
//    ,      
   if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED
                || ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
                || ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
                ) {
                //    
//shouldShowRequestPermissionRationale   ,          
            if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) {
                showMsg("            ");
            }
            //              ,     ,            
            // implementation 'com.lovedise:permissiongen:0.0.6'
            PermissionGen.needPermission(mContext, Constants.MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE,
                    new String[]{
                            Manifest.permission.WRITE_EXTERNAL_STORAGE,
                            Manifest.permission.READ_EXTERNAL_STORAGE,
                            Manifest.permission.CAMERA,
                    }
            );
        } else {
           //     
        }