【问题标题】:Unable to create folder in Android 11 React Native using React Native FS无法使用 React Native FS 在 Android 11 React Native 中创建文件夹
【发布时间】:2021-11-06 08:53:16
【问题描述】:
downloadFile = async (url) => {
   try {
     const granted = await PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
       {
         title: 'Storage Permission',
         message: 'App needs access to memory to download the file ',
       },
     );
     if (granted === PermissionsAndroid.RESULTS.GRANTED) {
       console.log("Permission Granted")
       let dirs = RNFetchBlob.fs.dirs.MainBundleDir;
       const execute = await RNFS.mkdir(`${dirs}/Jharkhand Update Database`)
       console.log(execute)
       console.log(dirs);
     } else {
      ToastAndroid.showWithGravity(
      'You need to give storage permission to download the file',
      ToastAndroid.SHORT,
      ToastAndroid.BOTTOM,
      );
    }
  } catch (err) {
  console.log('Random ', err);
 }
};

无法在 android 11 中创建文件夹。尝试使用 DocumentDir 和 SDCardApplicationDir 代替 MainBundleDir,但没有用。创建一个文件夹很重要,因为我们正在存储管理员发送的消息列表,这样即使移动数据关闭,应用程序仍然可以访问。

【问题讨论】:

    标签: reactjs react-native android-11 react-native-fs react-native-fetch-blob


    【解决方案1】:

    Android 11+ 需要MANAGE_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE 的权限才能按预期进行任何文件管理。

    不要忘记在您的 manifest.xml 文件中添加 <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />android:requestLegacyExternalStorage="true"

    阅读更多关于它的信息herehere

    【讨论】:

    • 已经这样做了,但我仍然无法创建文件夹。
    • MANAGE_EXTERNAL_STORAGE 将解决该问题。但我们的应用不会在 Play 商店中获得批准,除非我们有充分的理由使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-26
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多