如何使用原生的android文件 - 打开对话框?

bar*_*lja 17 android fileopendialog

我已经看到这个对话框在某些应用程序中选择/打开android上的文件,在我看来它是本机的.但我找不到在自己的应用程序中使用它的方法.所附截图的语言是德语,但我相信有人会认出它. 文件对话框的屏幕截图

Jor*_*ior 43

您可以使用具有MIME类型"*/*" 的意图ACTION_GET_CONTENT.它将返回onActivityResult上的URI

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Intent intent = new Intent()
        .setType("*/*")
        .setAction(Intent.ACTION_GET_CONTENT);

        startActivityForResult(Intent.createChooser(intent, "Select a file"), 123);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == 123 && resultCode == RESULT_OK) {
            Uri selectedfile = data.getData(); //The uri with the location of the file
        }
    }
Run Code Online (Sandbox Code Playgroud)

截图

  • 是的,这种方法更好,因为它还允许访问Dropbox等应用程序中的文件。使用** ACTION_OPEN_DOCUMENT **时,Dropbox不会显示在列表中。 (2认同)

Com*_*are 5

这似乎是存储访问框架的系统UI .您将使用ACTION_OPEN_DOCUMENT允许用户打开现有文档,或ACTION_CREATE_DOCUMENT允许用户创建新文档.

但是,这不是文件 UI.这是一个内容 UI.用户可以浏览非本地存储的内容 - 在屏幕截图中,用户可以浏览他们的Google云端硬盘和One Drive区域.而且,你得到的是一个Uri指向内容,而不是文件路径.