Android <;中的mimeType属性是什么;数据>;用来做什么?

Android <;中的mimeType属性是什么;数据>;用来做什么?,android,mime-types,Android,Mime Types,我真的搞不懂mimeType的意思。我知道它的存在,因此ContentProvider中的getType方法知道与它匹配的内容。但是我仍然不确定它是什么意思,或者它是如何使用的。如果您是指mime,请键入它来告诉接收实体如何解释文件。就像你看到的.txt一样,知道一个文件是一个文本文件。通过这种方式,您可以为扩展名为.any的文件提供服务,并且让浏览器仍然知道它是.txt文件,Mimetype多用途Internet邮件扩展名告诉您内容的描述 非ASCII字符集中的文本 非文本附件 具有多个部分的

我真的搞不懂mimeType的意思。我知道它的存在,因此
ContentProvider
中的
getType
方法知道与它匹配的内容。但是我仍然不确定它是什么意思,或者它是如何使用的。

如果您是指mime,请键入它来告诉接收实体如何解释文件。就像你看到的.txt一样,知道一个文件是一个文本文件。通过这种方式,您可以为扩展名为.any的文件提供服务,并且让浏览器仍然知道它是.txt文件,Mimetype多用途Internet邮件扩展名告诉您内容的描述

非ASCII字符集中的文本

非文本附件

具有多个部分的消息体

非ASCII字符集中的标题信息


以及它是否是Pdf/epub/html/text等任何
ContentProvider
通常定义它所处理的数据类型(例如,处理内部类中定义的
Notes
数据类型)。MIME类型只是通过给它一个唯一的名称来定义该数据类型的一种标准化方法。这允许数据类型以标准化的方式与使用
ContentProvider
的代码进行通信

它还可以帮助处理多种不同类型数据的
ContentProvider
,使事情井然有序,例如
RailwayContentProvider
可以处理火车、车站和车票,并可以使用MIME类型区分每种数据

为什么选择MIME类型?

当您考虑如何通过URI访问
ContentProvider
时,MIME类型的使用是一个自然的结果,即类似于Internet上的URL。就像在互联网上,网页有类似于
text/html
的MIME类型,而.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
中还有一些常量,比如and.

很遗憾,在android中它并不表示文件类型。如果你想编写自己的
ContentProvider
(由于答案中的链接限制,以注释的形式发布)。回答很好!!!!所以我们可以在“vnd.android.cursor.dir/”后面放任何我们喜欢的东西,对吗?或者它有一些必须遵循的约束,以避免与现有的mimetype冲突?android文档建议您也用
vnd.
启动子类型(在
/
之后),将其标记为“自定义MIME子类型”--然后使用反向域表示法(即Java包名称)以获得唯一的名称。请参阅我答案的最后一段,以获取示例:)为了避免代码中的所有
vnd…
字符串,在
ContentResolver
中还有一些常量,如和。@Philipp Reichart:回答得很好,谢谢,它应该与您在文档中的回答一样清楚@Randroid如果对评论投反对票。。。。。。。