В приложении Android-разработчика cordova (прокрутите вниз до устройства, версии, списка плагинов, все это совершенно актуально на момент написания этой статьи) Я хочу преимущественно хранить файл на внешней SD-карте и использовать внутреннюю память, если SDCard там нет. Я настраиваю мой путь сохранения к:Принудительная внешняя SD-карта на Android с кордовым и файловым плагином
persistentFS= cordova.file.externalDataDirectory||cordova.file.DataDirectory||fileSystem.root.toURL();
его возможного значения файлов: ///storage/emulated/0/Android/data/com.fubar.app/files/, такой же, как cordova.file .externalDataDirectory.
Я поставил: <access origin="cdvfile://*" /> ... <preference name="AndroidPersistentFileLocation" value="Compatibility" /> <preference name="AndroidExtraFilesystems" value="files-external,sdcard,files,documents,cache,cache-external,root" />
в config.xml, <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
в AndroidManifest.xml и устанавливать различные зачарования в index.html метатеге безопасности. Я добавляю, что вставлена SD-карта, включена запись, и я подтверждаю, что могу писать с ней - например, в ящике файлов. Он содержит папку Android/data/com.fubar.myapp/files /, как и следовало ожидать.
Все для ничего: файлы записываются в - и считываются с - внутреннего хранилища устройств. Я прочитал все google, снятые по этой теме, но ничто не приблизило меня к задаче (некоторые люди предлагают использовать плагин с файловыми системами, но, похоже, он был включен в файл плагина).
Любые подсказки? ТИА, Альф
Edit: Использование ADB оболочки, я могу видеть, что внешняя папка SDCard файлов для приложения имеет абсолютный путь:
`/storage/extSdCard/Android/data/com.fubar.myapp/files`
и вызывая resolveLocalFileSystemURL на
file:///storage/extSdCard/Android/data/com.fubar.myapp/files
счастливо успешно. Я не думаю, что это путь, потому что этот путь зависит от устройства.
Устройство: Samsung Galaxy Вкладка 10,5, леденец 5.0.1 с помощью Cordova 5.3.1, с помощью плагинов: Cordova-плагин-устройство 1.0.1 "Устройство" Cordova-плагин-диалогах 1.1.1 «Уведомление " cordova-plugin-file 3.0.0" Файл " cordova-plugin-file-transfer 1.3.0" Передача файлов " cordova-plugin-media 1.0.1" Media " cordova-plugin-whitelist 1.1.0" Whitelist»
Сложение хост Linux FC21
Могу ли я сделать это в рамках cordova, в javascript? Если я попытаюсь, Контекст не определен, поэтому я бы предположил, что это Java API, о котором вы говорите. –