允许用户在Android中选择保存文件的路径

Vic*_*ert 10 android file android-file

我正在为我们的客户开发一个应用程序,我们遇到了一个小功能,所以需要你的帮助,

Scenarion:我们开发了一个回收视图,用户可以根据类别查看图像列表和歌曲和视频,现在用户可以选择查看或收听图像,音频或视频,还有另一个选项可以下载.

需要帮助@我们使用一个静态路径完成此操作,用户可以保存所有文件,但我们的客户希望允许用户选择保存文件的路径,为此我们需要文件对话框,用户可以从中选择位置.

注意:伙计们注意到,对于一个静态路径,我们已经完成了这个并且它工作得很好,我们也将这个路径存储在本地数据库中,以便我们以后可以使用它.所以现在只剩下我们如何允许用户选择保存位置文件?

pra*_*iya 11

我认为Android DirectoryChooser可以帮助您选择文件保存目录.

表现

您需要声明DirectoryChooserActivity并请求android.permission.WRITE_EXTERNAL_STORAGE权限.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
<application>
    <activity android:name="net.rdrei.android.dirchooser.DirectoryChooserActivity" />
</application>
Run Code Online (Sandbox Code Playgroud)

活动

要选择目录,请从应用逻辑启动活动:

 final Intent chooserIntent = new Intent(this, DirectoryChooserActivity.class);

    final DirectoryChooserConfig config = DirectoryChooserConfig.builder()
            .newDirectoryName("DirChooserSample")
            .allowReadOnlyDirectory(true)
            .allowNewDirectoryNameModification(true)
            .build();

    chooserIntent.putExtra(DirectoryChooserActivity.EXTRA_CONFIG, config);

// REQUEST_DIRECTORY is a constant integer to identify the request, e.g. 0
startActivityForResult(chooserIntent, REQUEST_DIRECTORY);
Run Code Online (Sandbox Code Playgroud)

处理onActivityResult方法中的结果:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == REQUEST_DIRECTORY) {
        if (resultCode == DirectoryChooserActivity.RESULT_CODE_DIR_SELECTED) {
            handleDirectoryChoice(data
                .getStringExtra(DirectoryChooserActivity.RESULT_SELECTED_DIR));
        } else {
            // Nothing selected
        }
    }
}
Run Code Online (Sandbox Code Playgroud)