【发布时间】:2017-03-14 22:05:08
【问题描述】:
说明
saveToCameraRoll 在 Android 上因 Permission denied 错误而失败
复制
将 AWS S3 照片保存到设备相机胶卷突然失败
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" />
在其他几个权限中。
什么会导致权限被拒绝错误?在 Manifest 级别应该做什么以保存到 cameraRoll ?
附加信息
- React Native 版本:[填写此内容:该错误是否在最新的 RN 版本中重现?] 检查 V41
- 平台:[填写此内容:iOS、Android 还是两者?] 仅限 Android
- 操作系统:[填写此内容:MacOS、Linux 还是 Windows?] 开发 MacOS Sierra
- 开发工具:[填写:Xcode 或 Android Studio 版本,iOS 或 Android SDK 版本,如果适用] RN CLI + Android SDK
【问题讨论】: