如何在 expo-file-system 中调用 StorageAccessFramework 时下载文件而不显示目录选择 UI

ext*_*eck 7 android storage-access-framework react-native expo expo-file-system

我正在制作一个函数来保存通过expo-file-system. 在此代码中,当您在 Android 上单击下载按钮时,会出现文件选择 UI,当您选择文件时,就会下载该文件。但是,我希望文件能够像普通应用程序一样自动下载到特定目录中,而无需用户选择。

使用时requestDirectoryPermissionAsync,是否可以不使用SelectionUI,直接下载文件到指定路径?如果StorageAccessFramework没有这样的方法,有没有办法解决这个问题expo-file-system

代码

import * as FileSystem from "expo-file-system";

const { StorageAccessFramework } = FileSystem;

const saveAndroidFile = async (fileUri, fileName, contentType) => {
    try {
        const fileDir = StorageAccessFramework.getUriForDirectoryInRoot("Download");

        // This function calls the UI in the image below
        const permissions = await StorageAccessFramework.requestDirectoryPermissionsAsync(fileDir);
        if (!permissions.granted) {
            return;
        }

        try {
            await StorageAccessFramework.createFileAsync(fileDir, fileName, contentType)
                .then(async (uri) => {
                    await FileSystem.writeAsStringAsync(uri, fileString, { encoding: FileSystem.EncodingType.Base64 });
                    alert("Report Downloaded Successfully");
                })
                .catch((e) => {
                    console.log(e);
                });
        } catch (e) {
            throw new Error(e);
        }
    } catch (err) {}
};
Run Code Online (Sandbox Code Playgroud)

文件夹选择UI,每当requestDirectoryPermissionAsync调用时都会打开 在此输入图像描述