在Android中,可以使用Intent
和ACTION_OPEN_DOCUMENT_TREE
来实现仅文件夹选择器。下面是一个示例代码:
private static final int REQUEST_CODE_PICK_FOLDER = 123;
// 在需要调用文件夹选择器的地方调用此方法
private void pickFolder() {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(intent, REQUEST_CODE_PICK_FOLDER);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_PICK_FOLDER && resultCode == RESULT_OK) {
if (data != null) {
Uri uri = data.getData();
if (uri != null) {
// 获取用户选择的文件夹路径
String folderPath = uri.toString();
// 处理文件夹路径
// ...
}
}
}
}
在上面的代码中,pickFolder()
方法用于启动文件夹选择器,它创建一个Intent
并设置ACTION_OPEN_DOCUMENT_TREE
作为动作,然后使用startActivityForResult()
方法启动选择器。
在onActivityResult()
方法中,检查返回的结果是否是我们期望的REQUEST_CODE_PICK_FOLDER
,并且结果是否成功。如果成功,通过getData()
方法获取选择的文件夹的Uri
,然后可以将其转换为文件夹路径进行处理。
注意:ACTION_OPEN_DOCUMENT_TREE
只在API级别21(Android 5.0)及以上可用。在较低的API级别上,可能需要使用其他方法来实现仅文件夹选择器。