Android M Permissions : the usage of shouldShowRequestPermissionRationale() function

来源:互联网 发布:大数据译见 编辑:程序博客网 时间:2024/06/06 04:03

http://stackoverflow.com/questions/32347532/android-m-permissions-confused-on-the-usage-of-shouldshowrequestpermissionrati


After M Preview 1, if the dialog is displayed for the first time, there is no Never ask againcheckbox.

If the user denies the permission request, there will be a Never ask again checkbox in the permission dialog the second time permission is requested.

So the logic should be like this:

  1. Request permission:

    if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {    ActivityCompat.requestPermissions(context, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE);} else {    //Do the stuff that requires permission...}
  2. Check if the permission was denied or granted in onRequestPermissionsResult.

    If the permission was denied previously, this time there will be a Never ask again checkbox in the permission dialog.

    Call shouldShowRequestPermissionRationale to see if the user checked Never ask againshouldShowRequestPermissionRationale method returns false only if the user selectedNever ask again or device policy prohibits the app from having that permission:

    if (grantResults.length > 0){    if(grantResults[0] == PackageManager.PERMISSION_GRANTED) {        //Do the stuff that requires permission...    }else if (grantResults[0] == PackageManager.PERMISSION_DENIED){        // Should we show an explanation?        if (ActivityCompat.shouldShowRequestPermissionRationale(context, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {            //Show permission explanation dialog...        }else{            //Never ask again selected, or device policy prohibits the app from having that permission.            //So, disable that feature, or fall back to another situation...        }    }}

So, you won't have to track if a user checked Never ask again or not.

0 0
原创粉丝点击