MIME_TYPE
external/mime-support/mime.types
frameworks/base/mime/java-res/android.mime.types
- MIME类型
MIME type的缩写为(Multipurpose Internet Mail Extensions)代表互联网媒体类型(Internet media type),MIME使用一个简单的字符串
组成,最初是为了标识邮件Email附件的类型,在html文件中可以使用content-type属性表示,描述了文件类型的互联网标准。
MIME类型能包含视频、图像、文本、音频、应用程序等数据。Android开发中也会常常涉及到这已概念。
一、intent过滤器中的MIME Type
对于隐式意图,Android通过定义活动的Intent Filter(意图过滤器)来匹配隐式Intent对象,当一个intent对象被一个Intent Filter进行
匹配测试时,有三个方面会被参考到:动作、data (URI以及数据类型)和类别。其中的data就和MIME Type有关。
二、Provider 中的MIME Type
Content providers能以字符串的形式返回标准的MIME Type或者自定义的MIME Type。 在自定义的ContentProvider类中,一般会重写getType()方法,用于返回一个与URI对应的MIMEType
MIME media types and the extensions that represent them.
external/mime-support/mime.types
frameworks/base/mime/java-res/android.mime.types
packages/apps/Bluetooth/Androidmanifest.xml
<activity android:name=".opp.BluetoothOppLauncherActivity"
android:process="@string/process"
android:theme="@android:style/Theme.Material.Light.Dialog"
android:label="@string/bt_share_picker_label"
android:enabled="@bool/profile_supported_opp">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="text/x-vcard" />
<data android:mimeType="text/x-vcalendar" />
<data android:mimeType="text/calendar" />
<data android:mimeType="text/plain" />
<data android:mimeType="text/html" />
<data android:mimeType="text/xml" />
<data android:mimeType="application/zip" />
<data android:mimeType="application/vnd.ms-excel" />
<data android:mimeType="application/msword" />
<data android:mimeType="application/vnd.ms-powerpoint" />
<data android:mimeType="application/pdf" />
<data android:mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
<data android:mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
<data android:mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" />
<data android:mimeType="application/x-hwp" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
<data android:mimeType="x-mixmedia/*" />
<data android:mimeType="text/x-vcard" />
</intent-filter>
<intent-filter>
<action android:name="android.btopp.intent.action.OPEN" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/vnd.android.btopp" />
</intent-filter>
</activity>
一个MIME Type由媒体类型(type)与子类型(subtype)组成,它们之间使用反斜杠/分割,形式如下:type/subtype
如果我们要让一个activity能打开图片这种类型的文件,那么我们可以这样定义activity的intent-filter:
在manifest文件里->activity 添加
<intent-filter>
<actionandroid:name="android.intent.action.VIEW" />
<categoryandroid:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/jpeg ">
</intent-filter>
这样就把当前程序注册为可以打开/查看jpeg类型的图片
当在文件管理器里点击任何jpeg文件, 系统都会试图去执行你的程序。
" image/jpeg "这一类型属于标准的MIME Type。