Android 6 请求权限

Android 6 requesting a permission

在 android 6 我正在请求使用存储空间的权限。 现在,当用户拒绝我的请求时,我想向他显示一个对话框,解释为什么应用程序需要权限才能获得他的许可。

如何做到这一点?

是否有任何内置对话框,如使用请求权限方法时弹出的对话框?

执行以下操作:

/**
 * Permission check for Marshmallow
 */
public void checkMallowPermissions() {
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
            ContextCompat.checkSelfPermission(
                    getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE
            ) != PackageManager.PERMISSION_GRANTED) {



        if(!ActivityCompat.shouldShowRequestPermissionRationale(this,
                Manifest.permission.WRITE_EXTERNAL_STORAGE) ||

                checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
                PackageManager.PERMISSION_GRANTED)

            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    PERMISSION_REQUEST_CODE);
    }
    if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
                PackageManager.PERMISSION_GRANTED) {
          // Show your dialog
    }
}

最好在请求权限之前显示自定义对话框,这样用户就可以决定是接受还是拒绝权限。

你可以使用这个

int hasReadPermission = checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE);

if (hasReadPermission != PackageManager.PERMISSION_GRANTED) {
    //show your custom dialog regarding why you need this permission
}

当用户点击对话框按钮时,使用

显示权限对话框
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
        50);