我正在为 Android 开发一个 React Native 应用程序,它允许用户将文件写入 Android Pie 上的外部 SD 卡。我使用过React-native fs 和react-native fetch-blob 库。问题是我无法获得外部 SD 卡的正确路径。我尝试过使用 RNFS.ExternalDirectoryPath 和 RNFS.ExternalStorageDirectoryPath。它们都将路径指定为“/storage/emulated/0/Android/data/com.storage/files”。该路径不将文件保存在 SD 卡中,而是将文件保存在内部存储器中。 我使用的是 Android 9,并已在 AndroidManifest.xml 中授予读取和写入权限。 关于如何将文件写入SD卡有什么建议吗?android Pie是否支持读取和写入外部SD卡?
使用 React Native 和 RNFS 访问此类文件和目录的解决方案是保证访问并在代码中添加控件,如下所示:
这里是如何将数据库文件从 db 文件夹复制到 externalStorageDirectory 的示例
var path_dbMaster="/data/user/0/com.<name_your_package>/databases/db_name"
var path_dbCopie=RNFS.ExternalStorageDirectoryPath+'/dbCopie.db'
const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE, );
if (granted === PermissionsAndroid.RESULTS.GRANTED)
{
RNFS.copyFile(path_dbMaster,path_dbCopie)
.then(result => {
console.log('file copied:', result);
})
.catch(err => {
console.log(err);
});
}
else {
console.log('not granted');
Alert.alert(''," Permission required ",[{
text:'OK',
style:'cancel'
}])
}