Приложение My React Native для Android должно сохранить файл JSON в специальной папке, расположенной во внешнем хранилище. Я пытаюсь сделать это с помощью RNFS (https://github.com/itinance/react-native-fs) следующим образом:
const saveData = async () => {
var path = `${RNFS.ExternalStorageDirectoryPath}/MyApp`;
RNFS.mkdir(path);
path += '/data.json';
RNFS.writeFile(path, JSON.stringify(getData()), 'utf8')
.then((success) => {
console.log('Success');
})
.catch((err) => {
console.log(err.message);
});
}
Он работает хорошо, но не работает на устройстве Android Q. Эта ошибка отображается:
Error: Directory could not be created
Если я попытаюсь написать простой файл без создания каталога, он выдаст эту ошибку:
ENOENT: open failed: ENOENT (No such file or directory), open '/storage/emulated/0/data.json'
Однако я добавил эти разрешения в свой AndroidManifest.xml
:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
И предоставил разрешения на внешнее хранилище в настройках. Но если я изменю RNFS.ExternalStorageDirectoryPath
на RNFS.DocumentDirectoryPath
, он будет работать без ошибок. Но мне нужно получить доступ к внешнему хранилищу. Есть ли способ это сделать?
RNFS.DocumentDirectoryPath
Какой это был бы путь? - person blackapps   schedule 13.08.2020data/user/0/com.appName/files/
- person anDev   schedule 13.08.2020But I need to get an access to the external storage.
Объясните, пожалуйста, почему. - person blackapps   schedule 13.08.2020