允许用户将文件保存到 Select 路径 Android
Allow User To Select Path For Save File in Android
我正在为我们的客户开发一个应用程序,但有一个小功能卡住了,所以需要你的帮助,
场景:我们开发了一个回收视图,用户可以从中按类别查看图像、歌曲和视频列表,现在用户可以选择查看或收听图像,音频或视频,还有另一种下载方式。
需要帮助@ 我们已经通过一个静态路径完成了此操作,用户可以在其中保存所有文件,但我们的客户希望允许用户使用 select 路径来保存文件为此,我们需要用户可以 select 定位的文件对话框。
注意: 伙计们注意,对于一个静态路径,我们已经做到了这一点,而且效果非常好,我们还将该路径存储在本地数据库中,以便稍后使用,所以现在只剩下我们如何允许用户select保存文件的位置?
我认为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>
Activity
要选择目录,请从您的应用程序逻辑中启动 activity:
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);
在您的 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
}
}
}
我正在为我们的客户开发一个应用程序,但有一个小功能卡住了,所以需要你的帮助,
场景:我们开发了一个回收视图,用户可以从中按类别查看图像、歌曲和视频列表,现在用户可以选择查看或收听图像,音频或视频,还有另一种下载方式。
需要帮助@ 我们已经通过一个静态路径完成了此操作,用户可以在其中保存所有文件,但我们的客户希望允许用户使用 select 路径来保存文件为此,我们需要用户可以 select 定位的文件对话框。
注意: 伙计们注意,对于一个静态路径,我们已经做到了这一点,而且效果非常好,我们还将该路径存储在本地数据库中,以便稍后使用,所以现在只剩下我们如何允许用户select保存文件的位置?
我认为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>
Activity
要选择目录,请从您的应用程序逻辑中启动 activity:
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);
在您的 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
}
}
}