Android MIME TYPE的基本用法

MIME_TYPE

external/mime-support/mime.types
frameworks/base/mime/java-res/android.mime.types

  1. 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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值