Описание
Сбой saveToCameraRoll с ошибкой Permission denied
на Android
Воспроизведение
Сохранение фотографии AWS S3 на устройстве Camera Roll неожиданно завершилось сбоем
RNFS.downloadFile(DownloadFileOptions)
.promise
.then(() => {
CameraRoll.saveToCameraRoll(path, this.state.type) // path = /data/user/0/com.XXX.app/filesimage-xyz.jpg"
.then((data) => {
RNFS.unlink(path)
.then(() => {
console.log('Download and file unlink succeeded');
})
.catch((err) => {
console.error("RNFS unlink error: ", err.message);
});
})
.catch((error) => {
console.error("Save to Cameral roll error: ",error.message);
//error = code:"EUNSPECIFIED"
// framesToPop:1
// message:"Permission denied"
// stack:"Error: Permission denied↵
});
})
.catch((error) => {
console.error("RNFS.downloadFile! error: ", error.message);
});
В android/app/src/main/AndroidManifest.xml у меня есть <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
среди нескольких других разрешений.
Что может вызвать ошибку отказа в доступе? что нужно сделать на уровне манифеста, чтобы сохранить в cameraRoll?
Дополнительная информация
- Версия React Native: [ЗАПОЛНИТЕ ЭТО: Воспроизводится ли ошибка в последней версии RN?] Проверьте с помощью V41.
- Платформа: [ЗАПОЛНИТЕ ЭТО: iOS, Android или обе?] Только Android
- Операционная система: [ЗАПОЛНИТЕ ЭТО: MacOS, Linux или Windows?] Dev MacOS Sierra
- Инструменты разработки: [ЗАПОЛНИТЕ ЭТО: версия Xcode или Android Studio, версия iOS или Android SDK, если применимо] RN CLI + Android SDK