How to forget the “Never ask again” choice in Android M runtime permission dialog

后端 未结 6 796
囚心锁ツ
囚心锁ツ 2020-12-10 06:33

I wish to know where the \"Never ask again\" checkbox boolean flag is stored and how to clear its value? Not necessarily programmatically, but manually - via settin

6条回答
  •  被撕碎了的回忆
    2020-12-10 07:08

    @Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        boolean dontAsk = false;
        if (requestCode == REQUEST_CAM_STORAGE_PERMISSION) {
            for (String allowedPermissions : permissions) {
                if (ActivityCompat.shouldShowRequestPermissionRationale(context, allowedPermissions)) {
                    Log.e("Permission: ", "User Has Denied Permission");
                } else if (PermissionChecker.checkCallingOrSelfPermission(context, allowedPermissions) != PackageManager.PERMISSION_GRANTED) {
                    Log.e("Permission: ", "User Has Denied Permission with Don't Ask Again");
                    dontAsk = true;
                    break;
                } else {
                    Log.e("Permission: ", "User Has Allowed Permission");
                }
            }
    
            if (!dontAsk) {
                Log.e("Permission: ", "Dont'Ask False");
                checkPermission();
            } else {
                Log.e("Permission: ", "Dont'Ask True");
                startActivity(new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + this.getPackageName())));
            }
        }
    }
    

提交回复
热议问题