Android中目录的MIME类型

时间:2011-01-20 16:15:31

标签: android mime-types android-intent

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

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

6 个答案:

答案 0 :(得分:3)

AndExplorer有供应商mime类型使用AndExplorer作为文件选择器:

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

有关详细信息,请参阅AndExplorer's developper documentation。我认为其他文件浏览器具有相似的功能,但我还没有找到他们的文档。

答案 1 :(得分:3)

根据一些谷歌搜索,字符串'inode / directory'和'x-directory / normal'似乎是基于Unix系统的预先存在的MIME类型,但我手机上的任何内容都不知道是这样的在查找vnd.android.cursor.item /目录之前,我可能会检查并提供这些内容,这至少具有不绑定到特定应用程序的值。

我不愿意使用特定于应用程序的类型。

(我刚刚发现ES使用'资源/文件夹',它也可能与应用程序无关;太糟糕了,没有办法告诉Android这些类型都是等价的。)

答案 2 :(得分:2)

Blackmoon File Browser响应

的MIME类型
  • vnd.android.cursor.item /文件

为了打开它的视图以便显示文件夹的内容,或者在文件的情况下,它的父文件夹会滚动显示以显示该特定文件。

您可以查看Blackmoon's dev documentation概述其使用的各种意图。

Android没有指定特定的MIME类型来查看文件浏览应用中的文件/文件夹,这太糟糕了。这样,所有文件管理应用程序都将使用相同的意图,以便用户可以自由选择哪个应用程序最适合他们,而不是被锁定到任何特定的应用程序。

我想这就是为什么这样的网站http://www.openintents.org/存在,以便开发人员可以共享一些标准或者至少发布一些标准的应用程序功能。

答案 3 :(得分:2)

根据官方docs,它是 vnd.android.cursor.dir / *

答案 4 :(得分:2)

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

DocumentsContract.Document.MIME_TYPE_DIR

这是这个字符串:

vnd.android.document/directory

所以对于最初的问题:

    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);

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

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

    startActivityForResult(intent, OPEN_REQUEST);

答案 5 :(得分:-1)

因为目录中的文件似乎没有标准的mime类型,所以我编写了我的文件资源管理器来过滤没有mime类型的意图。只需将数据设置到文件夹的Uri即可。这也将意图方案设置为“文件”,这是我的意图过滤器所必需的。

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("file:///sdcard/MyFolder");
intent.setData(uri);
startActivity(intent);

此意图将在应用程序之后启动:

http://play.google.com/store/apps/details?id=com.organicsystemsllc.thumbdrive