Android-使用权限以特定路径下载和保存文件
我想在我的华威(Android 8)应用程序的下载路径中创建并保存文件 我使用的是React原生应用程序,我使用的是Android-使用权限以特定路径下载和保存文件,android,react-native,android-permissions,Android,React Native,Android Permissions,我想在我的华威(Android 8)应用程序的下载路径中创建并保存文件 我使用的是React原生应用程序,我使用的是rn fetch blob模块 我的方法: const path = `${RNFetchBlob.fs.dirs.DownloadDir}/offer.txt`; return RNFetchBlob.fs .writeFile(path, offer, 'utf8') .then(() => { alert('file create'); })
rn fetch blob
模块
我的方法:
const path = `${RNFetchBlob.fs.dirs.DownloadDir}/offer.txt`;
return RNFetchBlob.fs
.writeFile(path, offer, 'utf8')
.then(() => {
alert('file create');
})
.catch(error => console.log(error));
以及错误消息:
{[错误:权限被拒绝]帧停止:1,代码:'EUNSPECIFIED'}
和我的AndroidManifest.xml文件:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
我不明白为什么我有这个权限错误,一切都好吗
有人能帮我吗
谢谢大家! 对于6及更高版本,您必须添加权限运行时。 您可以使用此插件添加权限。
此外,您还可以在设置-->应用程序-->您的应用程序->权限中检查权限,对于大于23的Android SDK版本,您需要在运行时通过对话框提示请求权限。因此,您必须使用
react native
中的PermissionsAndroid
才能实现这一点
差不多
try {
if (Platform.OS === 'android') {
const granted = yield call(
PermissionsAndroid.request,
PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE
); // I used redux saga here. 'yield' keywoard. You don't have to use that. You can use async - await or Promises.
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
// Your Save flow
}
} else {
// iOS here, so you can go to your Save flow directly
}
} catch (e) {
console.log(e);
}
}
您应该查看:您有两次“写入外部存储”。删除一次