MIME type的缩写为(Multipurpose Internet Mail Extensions)代表互联网媒体类型(Internet media type),MIME使用一个简单的字符串组成,最初是为了标识邮件Email附件的类型,在html文件中可以使用content-type属性表示,描述了文件类型的互联网标准。
MIME类型能包含视频、图像、文本、音频、应用程序等数据。Android开发中也会常常涉及到这已概念。
一、intent过滤器中的MIME Type
在安卓开发中有一个意图(intent)的概念,intent又分为显式的和隐式的,没有明确指定组件名的Intent为隐式意图。关于隐式intent可参考android 隐式intent 精要一文。对于隐式意图,Android通过定义活动的Intent Filter(意图过滤器)来匹配隐式Intent对象,当一个intent对象被一个Intent Filter进行匹配测试时,有三个方面会被参考到:动作、data(URI以及数据类型)和类别。其中的data就和MIME Type有关。
来看一个activity的Intent Filter的例子:
在data里面定义了该过滤器的数据类型必须是vnd.android.cursor.item/vnd.google.note,一般情况下是指匹配该过滤器的intent对象所包含的URI必须是该类型的。而一个URI返回什么样的类型是在相关Provider类的getType(Uri uri)方法中决定的。上面的Intent Filter例子中,"vnd.android.cursor.item/vnd.google.note"这一类型属于自定义的自定义的MIME Type。
如果我们要让一个activity能打开图片这种类型的文件,那么我们可以这样定义activity的intent-fi