title: How to get "Never ask Again" option in runtime permission
body: <p>In my app I have created a  class name Untility where I wrore the code for permission of READ_EXTERNAL_STORAGE. But the problem is when I click Deny on the app, I am not finding the alert notification to set it allow again. Initialy I have the option "Never ask Again". Once I clicked on it, the dialog desapperas. and now after running the app if I click on deny, I cannot find Dialog message anymore to make it allow again. How can I modify my code to show this message every time.</p>
  
  <p>My Utility Class is</p>
  
  <pre><code>public class Utility {
  
  public static final int MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE = 123;
  
  @TargetApi(Build.VERSION_CODES.M)
  public static boolean checkPermission(final Context context) {
      int currentAPIVersion = Build.VERSION.SDK_INT;
      if (currentAPIVersion &gt;= android.os.Build.VERSION_CODES.M) {
          if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
              if (ActivityCompat.shouldShowRequestPermissionRationale((Activity) context, Manifest.permission.READ_EXTERNAL_STORAGE)) {
                  Log.v("TAG", "Permission is granted");
              }
              else {
                  ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);
              }
              return false;
          } else {
              return true;
          }
      } else {
          return true;
      }
   }
  </code></pre>
  
  <p>My Another class here I am calling the Utility class is</p>
  
  <pre><code>@Override
  public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
      switch (requestCode) {
          case Utility.MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE:
              if (grantResults.length &gt; 0 &amp;&amp; grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                  if(userChoosenTask.equals("Take Photo"))
                      cameraIntent();
                  else if(userChoosenTask.equals("Choose from Library"))
                      galleryIntent();
  
                      //do something here
              } else {
                  //code for deny
                  Toast.makeText(DetailMyColleague.this, "Permission Denied", Toast.LENGTH_SHORT).show();
              }
              break;
      }
  }
  private void selectImage() {
      final CharSequence[] items = { "Take Photo", "Choose from Library",
              "Cancel" };
  
      AlertDialog.Builder builder = new AlertDialog.Builder(DetailMyColleague.this);
      builder.setTitle("Add Photo!");
      builder.setItems(items, new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int item) {
              boolean result=Utility.checkPermission(DetailMyColleague.this);
  
              if (items[item].equals("Take Photo")) {
                  userChoosenTask ="Take Photo";
                  if(result)
                      cameraIntent();
  
              } else if (items[item].equals("Choose from Library")) {
                  userChoosenTask ="Choose from Library";
                  if(result)
                      galleryIntent();
  
              } else if (items[item].equals("Cancel")) {
                  dialog.dismiss();
              }
          }
      });
      builder.show();
  }
  private void galleryIntent()
  {
      Intent intent = new Intent();
      intent.setType("image/*");
      intent.setAction(Intent.ACTION_GET_CONTENT);//
      startActivityForResult(Intent.createChooser(intent, "Select File"),SELECT_FILE);
  }
  private void cameraIntent()
  {
      Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
      startActivityForResult(intent, REQUEST_CAMERA);
  }
  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
  
      if (resultCode == Activity.RESULT_OK) {
          if (requestCode == SELECT_FILE)
              onSelectFromGalleryResult(data);
          else if (requestCode == REQUEST_CAMERA)
              onCaptureImageResult(data);
      }
  }
  
  private void onCaptureImageResult(Intent data) {
      Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
      ByteArrayOutputStream bytes = new ByteArrayOutputStream();
      thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
  
      File destination = new File(Environment.getExternalStorageDirectory(),
              System.currentTimeMillis() + ".jpg");
  
      FileOutputStream fo;
      try {
          destination.createNewFile();
          fo = new FileOutputStream(destination);
          fo.write(bytes.toByteArray());
          fo.close();
      } catch (FileNotFoundException e) {
          e.printStackTrace();
      } catch (IOException e) {
          e.printStackTrace();
      }
  
      profilePic.setImageBitmap(thumbnail);
  }
  @SuppressWarnings("deprecation")
  private void onSelectFromGalleryResult(Intent data) {
  
      Bitmap bm=null;
      if (data != null) {
          try {
              bm = MediaStore.Images.Media.getBitmap(getApplicationContext().getContentResolver(), data.getData());
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
  
      profilePic.setImageBitmap(bm);
  }
  </code></pre>