android - 如何在 Android API < 21 中选择目录?

标签 android storage-access-framework

谁能告诉我在 API < 21 的 Android 中让用户通过 Android 文件选择器选择目录的最佳方法是什么? Intent.ACTION_OPEN_DOCUMENT_TREE 自 API 21 起可用,因此无法使用它。我是否必须制作自己的“文件选择器”或使用某些库来实现此目的?

最佳答案

抱歉,使用 ACTION_GET_CONTENT 会有帮助

Intent Intent = new Intent(Intent.ACTION_GET_CONTENT);
Intent.setType("*/*");
startActivityForResult(Intent, RESULT_CODE);

检索目录

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

        if(requestCode == Statics.REQUEST_CODE && resultCode == RESULT_OK && data!=null)
        {
            Uri uri = data.getData();
}}

uri 将为您提供文件的目录作为 URI。

“选择文件系统目录没有平台定义的Intent。ACTION_OPEN_DOCUMENT_TREE会让用户在Android 5.1+上选择文档树,但是文档树不一定是文件系统目录,就像ACTION_GET_CONTENT和ACTION_OPEN_DOCUMENT不一定涉及文件。”

How to get the folder path using Intent on Android

关于android - 如何在 Android API < 21 中选择目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58445854/

相关文章:

java - Android 应用程序抛出 Guice 异常

java - 如何解析 Retrofit JSON 响应

java - 使用 Intent.ACTION_OPEN_DOCUMENT 从特定文件夹打开文件

android - 与此操作关联的所有应用已被禁用、阻止或未安装存储访问框架

java - Android 无法对 SD 卡进行写入和删除操作

android - KitKat ACTION_OPEN_DOCUMENT 不显示三星设备上的文档

android - 在 Android 应用程序中重新启动后尝试打开文件夹时出现权限错误

java - Android 6.0 keystore ClassCastException

java - 无法在 onSingleClick 中使用 if 语句?双击时还需要 PDF 加载器

android - 无法在 onCreate 方法之外隐藏 Android 标题栏