我无法在 React Native 应用程序中访问外部存储中的内容

abd*_*rza 2 android react-native react-native-fs

我正在使用react-native-fs构建一个类似应用程序的媒体播放器,但我无法访问项目文件夹之外的目录,我添加了以下权限:

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />   
Run Code Online (Sandbox Code Playgroud)

我还使用以下代码检查读写权限:

    PermissionsAndroid.check(
      PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
    ).then(granted => {
      if (!granted) {
        PermissionsAndroid.requestMultiple([
          PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
          PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
        ]).then(result => {
          console.log(result);
        });
      }
    });
Run Code Online (Sandbox Code Playgroud)

RNFS.readDir() 抛出 null 错误:

  const path = RNFS.ExternalStorageDirectoryPath;
  RNFS.readDir(path).then(result => {
    console.log('GOT RESULT', result);
  });
Run Code Online (Sandbox Code Playgroud)

抛出的错误是:

[Error: Attempt to get length of null array]
Run Code Online (Sandbox Code Playgroud)

Tha*_*P A 6

请检查/尝试以下操作

  1. 从设备设置中允许应用程序的存储权限。
  2. 尝试通过添加如下更新清单android:requestLegacyExternalStorage="true"

<manifest ... >
  <application android:requestLegacyExternalStorage="true" ... >
    ...
  </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)