Phi*_*hen 6 react-native-android
saveToCameraRoll Permission denied在Android上失败并出现错误
将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);
});
Run Code Online (Sandbox Code Playgroud)
在android/app/src/main/AndroidManifest.xml中,我有
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
其他一些权限.
什么可以导致权限被拒绝错误?在Manifest级别应该做什么来保存到cameraRoll?
alp*_*pha 11
从Android 6.0(API级别23)开始,用户在应用程序运行时向应用程序授予权限,而不是在安装应用程序时.您可以使用PermissionAndroid API让用户授予外部存储访问权限.
例:
requestExternalStoragePermission = async () => {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
{
title: 'My App Storage Permission',
message: 'My App needs access to your storage ' +
'so you can save your photos',
},
);
return granted;
} catch (err) {
console.error('Failed to request permission ', err);
return null;
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4962 次 |
| 最近记录: |