java .io.FileNotFoundException: /storage/3766-6230/MyData/smallv.mp4 (разрешение отклонено) - PullRequest
0 голосов
/ 05 марта 2020

Несмотря на то, что тест разрешения для внешнего хранилища возвращен, FileOutputStream (newFile) .getChannel (); выдает исключение: java .io.FileNotFoundException: /storage/3766-6230/MyData/smallv.mp4 (В доступе отказано)

путь "/ storage / 3766-6230 / MyData /" существует, и я можете перемещать / копировать файлы в этот каталог, используя приложение менеджера файлов без проблем. Невозможно выяснить, чего не хватает в коде ниже. Примечание: жестко закодированные пути в коде, приведенные для упрощения, выбираются пользователем путем просмотра каталогов в приложении.

  if (ActivityCompat.checkSelfPermission(v.getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE)
                        == PackageManager.PERMISSION_GRANTED) {
     // Permission is already available, write to the file.
     File filetocopy = new File("/sdcard/tmp", "test.mp4");
     File newFile = new File("/storage/3766-6230/MyData", "test.mp4");
     if (newFile.exists()) return -1;    // file with the given name already exists
     try {
        inputChannel = new FileInputStream(filetocopy).getChannel();
        outputChannel = new FileOutputStream(newFile).getChannel();  // This throws exception
        copyFile(inputChannel, outputChannel );
     } catch (Exception e) {
        Log.e(LOGTAG,"I/O Error: "+e.getMessage());
        retv = -2;     // error
     }
  } else {
      // Permission is missing and must be requested.
      requestWriteExternalStoragePermission();
  }

...