【发布时间】:2022-12-26 02:42:08
【问题描述】:
我一直在尝试使用 RNFS (react-native-fs) 在 Android 中编写文件,但我不断收到以下错误:
Permission Denial: writing com.android.providers.media.MediaDocumentsProvider uri content://com.android.providers.media.documents/document/image%3A1000004616 from pid=8769, uid=10304 requires android.permission.MANAGE_DOCUMENTS, or grantUriPermission()
这是我的方法:
// write the file
RNFS.writeFile('content://com.android.providers.media.documents/document/image%3A1000004621', '/storage/emulated/0/Documents/my_app_folder/my_image.jpg', 'base64')
.then(success => {
console.log('FILE WRITTEN!');
})
.catch(err => {
console.log(err.message);
});
我启用了以下权限:
try {
PermissionsAndroid.requestMultiple([
PermissionsAndroid.PERMISSIONS.ACCESS_MEDIA_LOCATION,
PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
PermissionsAndroid.PERMISSIONS.READ_MEDIA_IMAGES,
PermissionsAndroid.PERMISSIONS.READ_MEDIA_VIDEO,
PermissionsAndroid.PERMISSIONS.READ_MEDIA_AUDIO,
]).then(result => {
if (
result['android.permission.ACCESS_MEDIA_LOCATION'] &&
result['android.permission.READ_EXTERNAL_STORAGE'] &&
result['android.permission.WRITE_EXTERNAL_STORAGE'] &&
result['android.permission.READ_MEDIA_IMAGES'] &&
result['android.permission.READ_MEDIA_VIDEO'] &&
result['android.permission.READ_MEDIA_AUDIO'] === 'granted'
) {
console.log('SUCCESS! Permissions Granted!');
} else if (
result['android.permission.ACCESS_MEDIA_LOCATION'] ||
result['android.permission.READ_EXTERNAL_STORAGE'] ||
result['android.permission.READ_MEDIA_IMAGES'] ||
result['android.permission.READ_MEDIA_VIDEO'] ||
result['android.permission.READ_MEDIA_AUDIO'] === 'never_ask_again'
) {
console.log(
'Please Go into Settings -> Applications -> APP_NAME -> Permissions and Allow permissions to continue',
);
}
});
} catch (err) {
console.warn(err);
}
清单.xml:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"
我哪里错了?
谢谢大家。
【问题讨论】:
标签: javascript android react-native react-native-fs