Я пытаюсь читать каталоги и файлы из папки на внешней 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/
Все еще не работает.