I am trying to download PDF file and save it to the device memory.
  public void downloadPdfAttachment(Activity activity, Attachment attachment) {
    Dexter.withActivity(activity)
      .withPermissions(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)
      .withListener(new MultiplePermissionsListener() {
        @Override public void onPermissionsChecked(MultiplePermissionsReport report) {
          if (report.areAllPermissionsGranted() && attachment != null) {
            startPdfAttachmentDownload(activity, attachment);
          } else {
            view.displayStoragePermissionRequired();
          }
        }
        @Override public void onPermissionRationaleShouldBeShown(
          List<PermissionRequest> permissions, PermissionToken token) {
          token.continuePermissionRequest();
        }
      }).check();
  }
And I get all two permission here as granted. Then I try to download attachment and save it.
public static String savePdfToDisk(Context context, ResponseBody body, String pdfName) {
    try {
      File fileDirectory = new File(getPdfFolder(context));
      fileDirectory.mkdir();
      File file = new File(fileDirectory, pdfName);
      file.createNewFile();
      InputStream inputStream = null;
      OutputStream outputStream = null;
      try {
        byte[] fileReader = new byte[4096];
        long fileSize = body.contentLength();
        long fileSizeDownloaded = 0;
        inputStream = body.byteStream();
        outputStream = new FileOutputStream(file);
        while (true) {
          int read = inputStream.read(fileReader);
          if (read == -1) {
            break;
          }
          outputStream.write(fileReader, 0, read);
          fileSizeDownloaded += read;
          Log.d("PdfUtils", "file download: " + fileSizeDownloaded + " of " + fileSize);
        }
        outputStream.flush();
        return file.getAbsolutePath();
      } catch (IOException e) {
        Log.d("PdfUtils", e.getMessage());
        return null;
      } finally {
        if (inputStream != null) {
          inputStream.close();
        }
        if (outputStream != null) {
          outputStream.flush();
          outputStream.close();
        }
      }
    } catch (IOException e) {
      Log.d("PdfUtils", e.getMessage());
      return null;
    }
  }
  public static String getPdfFolder(Context context) {
    return context.getFilesDir()+ "/my_app_name/pdf_files";
  }
And at this line I get exception that Permision is denied.
      file.createNewFile();
I double check in the app settings and Storage permission is granted.
Here is my Manifest file:
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Any idea?