Android中目录的MIME类型

Ped*_*yoo 9 android android-intent mime-types

我想知道我是否可以启动一个Intent来查看带有文件浏览器的目录(如果设备上安装了一个),那么我可以打开这样的文件夹:

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("file:///sdcard/MyFolder");
intent.setDataAndType(uri, "MIME TYPE FOR FOLDERS");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

Byt*_*ger 7

这是一个古老的问题,但我注意到在任何答案中实际上都没有正确指定目录 MimeType。我在 SAF(存储访问框架)android-StorageProvider的 Google 代码示例中发现了这一点:

DocumentsContract.Document.MIME_TYPE_DIR
Run Code Online (Sandbox Code Playgroud)

这是哪个字符串:

vnd.android.document/directory
Run Code Online (Sandbox Code Playgroud)

所以对于最初的问题:

    Uri uri = Uri.parse(getFilesDir().getPath());
    int OPEN_REQUEST = 1337;
    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setDataAndType(uri, DocumentsContract.Document.MIME_TYPE_DIR);

    startActivityForResult(intent, OPEN_REQUEST);
Run Code Online (Sandbox Code Playgroud)

但是存储访问框架将为您导航目录。所以你可能只需要这样做:

    int OPEN_REQUEST = 1337;
    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("*/*");

    startActivityForResult(intent, OPEN_REQUEST);
Run Code Online (Sandbox Code Playgroud)


Po'*_*rus 3

AndExplorer具有供应商 mime 类型,可将 AndExplorer 用作文件选择器:

  • vnd.android.cursor.dir/lysesoft.andexplorer.director
  • vnd.android.cursor.dir/lysesoft.andexplorer.file

有关更多信息,请参阅AndExplorer 的开发人员文档。我认为其他文件浏览器具有类似的功能,但我还没有找到他们的文档。