Кордова: чтение каталогов и файлов с SD-карты - PullRequest
2 голосов
/ 28 апреля 2019

Я пытаюсь читать каталоги и файлы из папки на внешней SD-карте на Android. cordova.file.externalRootDirectory возвращает file:///storage/emulated/0/, который не является путем SD-карты. Используя cordova.plugins.diagnostic.getExternalSdCardDetails(), я получил корневой путь моей SD-карты, но если я попытаюсь прочитать ее, она вернет FileError code: 5.

Cordova Версия: 9.0.0 (cordova-lib@9.0.1) Уровень Android-API: 22 * ​​1007 *

cordova.plugins.diagnostic.getExternalSdCardDetails(function(data) {                 
  window.resolveLocalFileSystemURL(data[0].filePath + "/", 
  $scope.onFSSuccess, $scope.onError);
}, console.log);

$ scope.onError срабатывает, возвращая ошибку 5.

this.onError = function(e) {
  console.log(e);
}

Функция, которая должна создавать считыватель папки SD-Card.

this.onFSSuccess = function(fileSystem) {
  fs = fileSystem;
  var directoryReader = fileSystem.createReader();
  directoryReader.localURL = directoryReader.localURL + $scope.dirPath;
  $scope.directoryReaderPath = directoryReader.localURL;
  directoryReader.readEntries($scope.readerSuccess, $scope.onError);
}

ПРИМЕЧАНИЕ: я добавил следующие строки в config.xml

<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<preference name="AndroidExtraFilesystems" value="sdcard,cache" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Обновление: я пытался использовать абсолютный путь. file:///storage/sdcard/0/ Все еще не работает.

...