在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级别上,可能需要使用其他方法来实现仅文件夹选择器。