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

我真的无法得到mimeType的含义。 我知道它存在,所以contentprovider中的getType方法知道与它匹配。 但是我仍然不确定它是什么意思或者它是如何使用的。

任何ContentProvider通常定义它处理的数据的types(例如, NodePadProvider处理在NodePad的内部类中定义的Notes数据types)。 MIMEtypes只是一种标准化的方式,通过给它一个唯一的名字来定义数据types。 这允许将数据types以标准方式传递ContentProvider一起工作的代码。

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

为什么MIMEtypes?

当您考虑如何通过URI访问ContentProvider时,MIMEtypes的使用是一个自然的结果,也就是说像Internet上的一个URL。 就像在互联网上一样,MIMEtypes如网页的text/html和.jpg图像的image/jpeg ,Android要求你为ContentProvider处理的任何数据types定义一个自定义的MIMEtypes。

一个自定义MIMEtypes的例子

在NotePad示例项目的NodePad(上面链接的)类中,您会发现:

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

这个字段定义了一个自定义的MIMEtypes(可以被type/subtype模式识别)。

Androidbuild议你使用vnd.android.cursor.dir/...作为第一部分任何types的“目录列表”(多个项目)和vnd.android.cursor.item/...作为任何第一部分的单个项目。

对于子types,再次build议使用vnd.启动它vnd. 然后添加你的反向域名/包名称,例如vnd.android.cursor.item/vnd.com.mydomain.myapp.mydata

为了避免代码中的所有vnd...string, ContentResolver还有一些常量,比如CURSOR_DIR_BASE_TYPE和CURSOR_ITEM_BASE_TYPE 。

Mimetype 多用途互联网邮件扩展是告诉你的内容的描述

除了ASCII以外的字符集中的文本

非文字附件

邮件正文与多个部分

非ASCII字符集中的标题信息

还有它是否是pdf / epub / html / text等等

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