Кто-нибудь знает, возможно ли получить доступ к SDCARD через Cordova. В настоящее время я занимаюсь разработкой приложения Musi c Player и пытаюсь в течение 3 дней. Я не могу получить доступ к некоторым сохраненным mp3-файлам на SD-карте в устройстве.
Я использую cordova-plugin- файл и сразу я вижу, что 'cordova.file.externalRootDirectory' возвращает 'файл: /// storage / emulated / 0 /' (локально смонтированная файловая система?), а не ожидаемая внешняя файловая система SDCard, как в случае cordova-plugin- файл документации?
Для обнаружения смонтированной SD-карты я использую 'cordova-Diagnosti c -plugin', который возвращает точку монтирования SD-карты как 'file: /// storage / 492E-BE06'. Это также сообщает, что файловая система доступна для записи, но я не могу писать или читать, когда пытаюсь.
Я добавил следующие 2 строки в AndroidManifest. xml file
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Я запрашиваю разрешение на запись во время выполнения
function requestExternalSdPermission(done){
cordova.plugins.diagnostic.requestRuntimePermission(function(status){
switch(status){
case cordova.plugins.diagnostic.permissionStatus.GRANTED:
console.log("Permission granted");
break;
case cordova.plugins.diagnostic.permissionStatus.DENIED:
console.log("Permission denied");
break;
case cordova.plugins.diagnostic.permissionStatus.DENIED_ALWAYS:
console.log("Permission permanently denied");
break;
}
}, function(error){
console.error("The following error occurred: "+error);
}, cordova.plugins.diagnostic.permission.WRITE_EXTERNAL_STORAGE);
}
, и я добавил следующее в config. xml
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,assets" />
Это, очевидно, проблема с разрешениями, но у меня полностью закончились идеи. Чтение и запись во внутреннюю файловую систему работает как положено. Я не могу понять, что происходит? Это вообще возможно через Кордову или это ограничение?