【问题标题】:Android available mime-types?Android 可用的 mime 类型?
【发布时间】:2014-06-16 14:56:00
【问题描述】:

在网上搜索了几次后,我找不到一个地方可以告诉我 android 应用程序中不同类型媒体的所有现有 mime 类型。

以下是我所知道的存在并有效的方法:

对于文字

"text/plain"

对于图片

"image/jpeg"
"image/bmp"
"image/gif"
"image/jpg"
"image/png"

对于视频

"video/wav"
"video/mp4"

这些是我拥有并且知​​道的工作,我缺少几个用于视频和声音类型的文件。有谁知道描述每种 android mime-type 的地方,或者你们曾经为这些不同类型的媒体使用过另一种 mime-type 吗?

编辑:

我在监控 SMS 和 MMS 的应用程序中使用它,并在 MMS 类型中管理其中的内容。我为 8 以上的每个版本运行的代码。

【问题讨论】:

  • audio/*类型。
  • 对 zip 和 rar 文件有什么想法吗?

标签: android mime-types


【解决方案1】:

您可以在Android(java版本)中使用现有的映射

String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext.toLowerCase());

【讨论】:

    【解决方案2】:

    这几天我做了一些搜索。

    也许你应该阅读这些链接。

    【讨论】:

    • 第一个代码做了一些可疑的事情。就像假设文件路径中的最后一个点始终是扩展名一样
    【解决方案3】:

    我找不到一个地方可以告诉我 android 应用程序中不同类型媒体的所有现有 mime 类型

    Play Store 上有超过一百万个应用程序,还有其他地方的其他应用程序(例如,预装在设备上、适用于 Android 的 Amazon AppStore)。给定的设备将具有这些应用程序的某种组合。如果用户在平板电脑上运行 Android 4.3+ 受限配置文件,则给定用户将有权访问设备上的某些应用子集。

    因此,在编译时无法知道给定 Android 设备可以支持哪些 MIME 类型,例如ACTION_VIEW 活动请求。操作系统本身不支持这样的 MIME 类型——它们都是由应用程序提供的。

    以下是我所知道的存在并有效的方法:

    某些设备可能预装了支持这些 MIME 类型的应用。 text/plain 是您的集合中最不可能“开箱即用”支持的。

    【讨论】:

    • 我编辑了我的问题,也许我现在使用它的方式更有意义。
    • @JoaoFilipeClementeMartins:这不会改变我的答案。设备为用户支持的 MIME 类型取决于设备和用户。您可以使用PackageManagerqueryIntentActivities() 等方法在运行时确定当前设备上当前用户支持和不支持的内容。
    • 是否可以将您自己的应用程序自定义文件扩展名注册为 MIME 类型?例如,android:mimeType="application/myapp"android:mimeType="application/mycustomtype"
    • @IgorGanapolsky:我不知道您在这里所说的“注册”是什么意思。例如,您可以在 <intent-filter> 结构中使用您想要的任何 MIME 类型。但是,您不能影响 MimeTypeMap 返回的内容,例如,因为它是硬编码的。
    • @IgorGanapolsky:您的问题在于电子邮件发件人。 Gmail 只知道它给出的 MIME 类型,在没有发件人指定的 MIME 类型的情况下,可能会默认为基于文件扩展名的东西。如果发件人以application/json 作为 MIME 类型的附件附加 JSON 文件,这不是 Gmail 的错,Gmail 只会知道将其视为application/json。这个故事的寓意:MIME 类型只有在它们是标准的或者它们来自您控制的 Web 服务器时才有用。
    猜你喜欢
    • 2021-10-23
    • 2010-12-14
    • 2012-11-05
    • 2011-12-01
    • 2012-02-29
    • 2011-01-13
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多