`

Android MIME类型

 
阅读更多

如同一个web 站点根据 URL 返回 MIME 类型一样(允许浏览器调用相关的程序来显示具体的内容), content provider 也有根据 URI 来返回特定 MIME 类型的责任。这给数据显示增加了弹性。知道了数据的类型,你可能有不止一个程序来处理这个数据。举例来说,如果你在存储器上有一个文本文件,有很多编辑器可以用来显示这个文本文件。根据 OS 的不同,它可能会让你选择用哪个编辑器来查看此文件。
在Android 里面的 MIME 的工作方式和在 HTTP 里类似。你在 URI 里面提供给 provider 所支持的 MIME 类型,然后 provider 根据 web 中 MIME 标准返回一个由两个字符串组成的 MIME 类型识别。

你从这里发现 MIME 类型的标准: http://tools.ietf.org/html/rfc2046
根据MIME 类型的说明,一个 MIME 类型包含两个部分:一个类型和一个子类型。这里有些熟知的 MIME 类型对:
text/html
text/css
text/xml
text/vnd.curl
application/pdf
application/rtf
application/vnd.ms-excel

你可以在Internet Assigned Numbers Authority ( IANA )网站上看到所有的类型支持: h ttp://www.iana.org/assignments/media-types/
其中基本类型有
application
audio
example
image
message
model
multipart
ext
video

这些基本类型都有它的子类型。但是如果是专有的数据格式,那么子类型会以vnd 开始。举例来说,微软的 Excel 表以 vnd.ms-excel 子类型来识别,而 pdf 不是一个专有的标准,所以它的子类型没有专有前缀。
某些子类型以x- 作为前缀。这些是非标准的子类型,不需要注册。它们被认为是由两个合作机构定义的私有类型。这里有些例子:
application/x-tar
audio/x-aiff
video/x-msvideo

android 依照相似的惯例来定义 MIME 类型。 android 里面的 vnd 指那些非标准的专有的格式。为了唯一性, android 还用了类似于域名的多个关于类型和子类型的部分。此外, android 中给每个 content 的 MIME 类型包含两种形式:一个给具体的 record ,一个给多个 records 。
对于单独的record , MIME 看起来像:
vnd.android.cursor.item/vnd.yourcompanyname.contenttype
对于多个records , MIME 类型看起来像:
vnd.android.cursor.dir/vnd.yourcompanyname.contenttype

这里有一系列的例子:
//一个 note
vnd.android.cursor.item/vnd.google.note

//一个 notes 集合的目录
vnd.android.cursor.dir/vnd.google.note

MIME类型在 android 里面得到了大规模的应用,特别是在 intent 里,系统根据 MIME 数据的类型来决定调用哪个 activity 。 MIME 类型始终通过 content providers 继承自它们的 URIs 。你在使用 MIME 类型的时候要记住三点:
*基本类型和子类型代表的东西要唯一。
*如果是非标准的,专有的类型和子类型,前面需要加 vnd 。
*对于特定的需求,注意名字空间。

分享到:
评论

相关推荐

    android中常见MIME类型

    android中常见MIME类型 如 3gp video/3gpp aab application/x-authoware-bin aam application/x-authoware-map aas application/x-authoware-seg ai application/postscript 等

    android中常见MIME类型.pdf

    android中常见MIME类型.pdf

    android打开各种mime类型文件的工具类

    这是一个工具类,导入你的项目就可以直接使用,调用该类方法实现你的功能

    博客《ContentProvider数据库共享之——MIME类型与getType()》对应源码

    博客《ContentProvider数据库共享之——MIME类型与getType()》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/44620851

    让服务器iis支持.apk文件下载的设置方法.docx

    4. 扩展名中填写“.apk”,MIME 类型中填写“application/vnd.android.package-archive”。 5. 单击“确定”保存设置。 6. 重启 IIS,使设置生效。 如此操作之后,使用 IIS 服务器的网站便可以下载.apk 文件了。 ...

    Win2003 手机站IIS MIME类型设置大全

    添加内容类型(MIME) 关联扩展名 下面是常用的手机文件格式扩展名: 如果需要对支持java下载:在iis中需要添加 .jad–>text/vnd.sun.j2me.app-de .jar–>application/java-archive 诺基亚塞班手机s60v5、s60v3支持sis...

    获取文件的mime typePHP类库.zip

    <?... class MimeTypes {  public static $mime_types = array (  'apk' => 'application/vnd.android.package-... 'css' => 'text/css',本类库可以获得文件的mime type类型,需要的朋友可以下载使用

    Android NFC API Reference(官方,中文)

    Android NFC API Reference 还介绍了如何把 NFC 标签映射到 MIME 类型和 URI,以及如何在检测到 NDEF 消息时,标签调度系统所做的特定的工作等。Android 支持由 NFC Forum 所定义的 NDEF 标准,NDEF 数据被封装在一...

    一个Android文件下载Download程序示例

    一个Android文件下载Download程序...调用getMIMEType()来取得MimeType,设置intent的file与MimeType ,判断文件MimeType的method,取得扩展名,依扩展名的类型决定MimeType,如果无法直接打开,就跳出软件列表给用户选择.

    Android_Intent和Intent_Filter详解

    setData() 方法指定数据的 URI,setType() 指定 MIME 类型,setDataAndType() 指定数据的 URI 和 MIME 类型。通过 getData() 读取 URI,getType() 读取类型。 ### 四、Category 部分 Category 为字符串对象,包含...

    android系统下载管理器下载文件并打开.rar

    通过使用android中系统下载管理器下载文件,下载完文件后,自动打开相应的文件。附带常见文件mime类型

    Android中调用系统所装的软件打开文件

    //获取文件file的MIME类型 String type = getMIMEType(file); //设置intent的data和Type属性。 intent.setDataAndType(/*uri*/Uri.fromFile(file), type); //跳转 startActivity(intent); }

    Android判断和读取图标列表iconFile实例

    ,调用getMIMEType()来取得MimeType,设置intent的file与MimeType ,判断文件MimeType的方法,如果无法直接打开,就跳出软件列表给用户选择。变量声明:items:存放显示的名称,paths:存放文件路径,rootPath:起始...

    androidtest:android pritace

    androidtest ##标签中配置一个标签 1. android:scheme ... 2. android:host 用于指定数据的主机名部分,如上例中的 部分。...5. android:mimeType 用于指定可以处理的数据类型,允许使用通配符的方式进行指定。

    Android注解框架AndroidInject.zip

     注意:使用此注解的方法参数需要包含Collection或其子类型集合 或者包含File对象 来作为要上传的文件 使用fragment的注解,需要android-support-v4.jar的支持(以兼容低版本) 使用网络请求的...

    IIS 服务器下载apk文件报404错误的解决方法

    最近在使用IIS作为服务器的时候,apk文件已经上传到服务器上去了,但是无法下载,报404错误(没有找到)...也可以这样增加:文件扩展名:.apk MIME类型:application/vnd.android.package-archive 最后测试,问题解决。

    文件选择器源码.zip

    文件选择器源码,aFileChooser是一个Android库项目,简化...特点: 完整的文件资源管理器,简化GET_CONTENT意图创造很容易把一个Uri转换成一个文件确定数据的MIME类型遵循Android惯例(片段,装载机、意图等)。  效果图:

    Android播放视频的三种方式

    指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型。 2)、使用VideoView来播放。在布局文件中使用VideoView结合MediaController来实现对其控制。 3)、使用MediaPlayer类和SurfaceView来实现,这种方式很灵活。...

Global site tag (gtag.js) - Google Analytics