`

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类型(Multipurpose Internet Mail Extensions)是一种标准,用于标识网络上传输的数据类型。MIME类型在Android中的应用广泛,涉及到文件处理、数据交换、内容解析等多个方面。下面将详细介绍...

    android中常见MIME类型.pdf

    在Android系统中,MIME类型(Multipurpose Internet Mail Extensions)是一种标准,用于标识网络上传输的数据类型。MIME类型在Android中主要用于定义不同类型的文件、数据流或内容,确保它们被正确的应用程序处理。...

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

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

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

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

    httpmime-4.1.2.jar org.apache.http.entity.mime

    - 在Android应用中,如果需要上传图片、文档等文件,可以使用`MultipartEntityBuilder`来构建MIME类型的实体,将文件作为请求的一部分发送。 - `MultipartEntityBuilder`允许添加多个`Part`,每个`Part`代表一个...

    android打开各种类型文件.pdf

    Android系统基于MIME类型(Multipurpose Internet Mail Extensions)来识别和处理不同的文件格式。MIME类型是一种标准,用于定义不同类型的网络数据,包括文本、音频、视频、图像等。在Android中,每个文件扩展名都...

    apache-mime4j-0.6.jar&httpmime-4.0.1.jar

    Apache MIME4J与HTTPMIME是两个在Android开发中用于文件上传至服务器的重要库,尤其在处理MIME类型数据时非常关键。这两个Java库分别提供了不同的功能,让我们逐一深入探讨。 首先,Apache MIME4J(apache-mime4j-...

    android jar包httpmime.zip

    通过这个类,我们可以创建一个包含多个部分的请求,每个部分可以是不同的MIME类型,这在处理表单数据和文件上传时特别有用。 首先,我们需要在项目中引入`httpmime.jar`。在Android Studio中,可以将该jar包添加到...

    Android HttpClient用到的jar包

    这两个jar包是HttpClient库的重要组成部分,它们提供了处理MIME类型和上传文件的功能。 1. **Apache Mime4j**:这是一个解析和操作MIME类型数据的库。在HTTP上传文件时,尤其是涉及到多部分表单数据(multipart/...

    org.apache.http.entity.mime

    6. `MIME`: 包含了一些MIME相关的常量和辅助方法,如获取MIME类型、创建MIME边界等。 在实际使用中,开发者通常会使用`MultipartEntityBuilder`来构造一个MIME实体,然后将其设置为HTTP请求的实体。例如,如果你...

    apache-mime4j-0.7.2

    在Android应用开发中,我们经常需要处理HTTP请求和响应,这些通常涉及MIME类型。MIME是一种标准,定义了如何在不同应用程序之间交换各种数据类型,包括文本、图像、音频和视频等。HTTP MIME4J与Apache HttpClient库...

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

    这是一个重要的步骤,因为Android系统会根据MIME类型决定哪个应用程序最适合处理该文件。 ```java String type = getMIMEType(file); ``` `getMIMEType`方法通过遍历预定义的MIME类型映射表(`MIME_MapTable`)来...

    HttpMiMe.jar

    就是这个库的一部分,包含了处理MIME类型所需的类和方法。例如,你可以创建一个`MultipartEntityBuilder`,添加多个部分,每个部分可以是一个文件或简单的文本数据,然后将其设置到`HttpPost`的实体中。 以下是一个...

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

    1. 内容类型:这是MIME类型的名称,例如“application/vnd.android.package-archive”。 2. 扩展名:这是与MIME类型相关联的文件扩展名,例如“.apk”。 现在,我们来看看不同类型的手机软件下载需要的MIME类型设置...

    开发multipart与解析mime邮件等所用的jar包

    总之,`multipart`和`mime`邮件是互联网通信中的重要概念,而`apache-mime4j-0.6.jar`作为一个强大的工具,为Android开发者提供了处理这些数据的强大支持。无论是在文件上传、下载还是电子邮件处理中,它都是不可或...

    httpmime-4.1.1

    例如,在Android应用开发中,使用HttpClient和httpmime库可以方便地将用户选择的文件上传到服务器。同时,它也是服务器端接收并解析上传文件的有效工具。 在提供的压缩包文件中,httpmime-4.1.1.jar是核心库文件,...

    android打开各种类型文件.docx

    在Android操作系统中,打开各种类型文件涉及到文件的 MIME 类型识别和对应的文件处理程序。MIME(Multipurpose Internet Mail Extensions)类型是一种标准,用于定义不同类型的网络数据,如文本、图像、音频、视频等...

    httpclient和httpcore和httpmime和opencsv-2.3和ZSDK_ANDROID_API

    它包含了对MIME类型的解析和构建支持,使得在HTTP请求和响应中发送和接收复杂的数据,如文件或图像,变得更加简单。HttpMime包含`MultipartEntity`类,可以方便地处理多部分形式的数据,常见于文件上传。 4. **...

    apache-mime4j-0.6.jar and httpmime-4.0.1.jar.zip

    `httpmime-4.0.1.jar`是Apache HttpClient的一个扩展模块,专注于处理HTTP消息体,特别是对于POST和PUT方法中的复杂内容类型。它提供了一系列类,如`MultipartEntity`和`MultiPartEntityBuilder`,使得开发者可以...

Global site tag (gtag.js) - Google Analytics