用于?</data>的<data>中的mimeType属性是什么?

时间:2011-08-23 06:33:56

标签: android mime-types

我真的无法理解mimeType的含义。我知道它存在,因此getType中的ContentProvider方法知道要与之匹配的内容。但我仍然不确定它的意义或使用方式。

3 个答案:

答案 0 :(得分:74)

任何ContentProvider通常都会定义它处理的数据类型(例如NotePadProvider处理内部类NotePad中定义的Notes数据类型。 MIME类型只是通过为其提供唯一名称来定义该数据类型的标准方法。这允许将数据类型传递给以标准化方式与ContentProvider一起使用的代码。

它还有助于ContentProvider处理几种不同类型的数据,以保持组织有序,例如RailwayContentProvider可以处理火车,车站和车票,并且可以使用MIME类型来区分每个人。

为何选择MIME类型?

当您考虑如何通过URI访问ContentProvider时,使用MIME类型是一种自然的结果,即类似于Internet上的URL。就像在互联网上有类似网页的text/html和.jpg图像的image/jpeg这样的MIME类型,Android希望您为ContentProvider处理的任何数据类型定义自定义MIME类型。

示例自定义MIME类型

在NotePad示例项目的NotePad(上面链接)类中,您将找到:

public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.google.note";

此字段定义自定义MIME类型(可由type/subtype模式识别)。

Android建议您使用vnd.android.cursor.dir/...作为任何类型“目录列表”(多个项目)的第一部分,vnd.android.cursor.item/...作为任何类型单项的第一部分。

对于子类型,再次建议使用vnd.启动它,然后添加类似反向域名/包名称的内容,例如: vnd.android.cursor.item/vnd.com.mydomain.myapp.mydata

要避免代码中的所有vnd...个字符串,ContentResolver中还有一些常量,例如CURSOR_DIR_BASE_TYPECURSOR_ITEM_BASE_TYPE

答案 1 :(得分:12)

Mimetype 多用途互联网邮件扩展程序告诉您内容的说明

ASCII以外的字符集中的文本

非文字附件

包含多个部分的邮件正文

非ASCII字符集中的标头信息

以及是否是Pdf / epub / html / text等

答案 2 :(得分:3)

如果你的意思是mime键入它告诉接收实体如何解释文件。就像你看到.txt一样,知道文件是一个文本文件。这样,您可以使用.anyExtension提供文件,并让浏览器知道它是.txt