Мне нужно записать файл в корневой каталог SD-карты.Я использую функцию getExternalSdCardDetails () из cordova-диагностический-плагин .И получите что-то вроде этого:
[{
"path": "/storage/4975-1401/Android/data/cordova.plugins.diagnostic.example/files",
"filePath": "file:///storage/4975-1401/Android/data/cordova.plugins.diagnostic.example/files",
"canWrite": true,
"freeSpace": 16254009344,
"type": "application"
}, {
"path": "/storage/4975-1401",
"filePath": "file:///storage/4975-1401",
"canWrite": false,
"freeSpace": 16254009344,
"type": "root"
}]
Итак, я не могу написать file:///storage/4975-1401
, потому что "canWrite": false
Я добавил
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,assets,root" />
к config.xml
и
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
до AndroidManifest.xml
, но безрезультатно, когда я пытаюсь записать файл в корневой каталог, я получаю ошибку CODE 5 ENCODING_ERR
Запись в /storage/4975-1401/Android/data/cordova.plugins.diagnostic.example/files
работает.