我无法在我的 React Native 应用程序中访问外部存储的内容
I am not able to access contents from External Storage in my React Native App
我正在使用 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" />
我也在使用以下代码检查读写权限:
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);
});
}
});
RNFS.readDir() 抛出空错误:
const path = RNFS.ExternalStorageDirectoryPath;
RNFS.readDir(path).then(result => {
console.log('GOT RESULT', result);
});
抛出的错误是:
[Error: Attempt to get length of null array]
请检查/尝试以下操作
- 在设备设置中允许应用程序的存储权限。
- 通过添加
android:requestLegacyExternalStorage="true"
尝试像下面这样更新清单
<manifest ... >
<application android:requestLegacyExternalStorage="true" ... >
...
</application>
</manifest>
我正在使用 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" />
我也在使用以下代码检查读写权限:
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);
});
}
});
RNFS.readDir() 抛出空错误:
const path = RNFS.ExternalStorageDirectoryPath;
RNFS.readDir(path).then(result => {
console.log('GOT RESULT', result);
});
抛出的错误是:
[Error: Attempt to get length of null array]
请检查/尝试以下操作
- 在设备设置中允许应用程序的存储权限。
- 通过添加
android:requestLegacyExternalStorage="true"
尝试像下面这样更新清单
<manifest ... >
<application android:requestLegacyExternalStorage="true" ... >
...
</application>
</manifest>