gpt4 book ai didi

android - 中的 mimeType 属性是做什么用的?

转载 作者:IT王子 更新时间:2023-10-28 23:48:33 24 4
gpt4 key购买 nike

我真的无法理解 mimeType 的含义。我知道它存在,因此 ContentProvider 中的 getType 方法知道与它匹配的内容。但我仍然不确定它的含义或它是如何使用的。

最佳答案

任何 ContentProvider 通常定义它处理的数据类型(例如 NotePadProvider 处理在 NotePad 的内部类中定义的 Notes 数据类型)。 MIME 类型只是通过给它一个唯一的名称来定义该数据类型的标准化方法。这允许以标准化方式将数据类型传达给与 ContentProvider 一起工作的代码。

它还有助于 ContentProvider 处理几种不同类型的数据以保持事物井井有条,例如RailwayContentProvider 可以处理火车、车站和车票,并且可以使用 MIME 类型来区分每一个。

为什么选择 MIME 类型?

当您考虑如何通过 URI(例如 Internet 上的 URL)访问 ContentProvider 时,使用 MIME 类型是自然而然的结果。就像 Internet 上的 MIME 类型一样,例如用于网页的 text/html 和用于 .jpg 图像的 image/jpeg,Android 希望您为任何您的 ContentProvider 处理的数据类型。

自定义 MIME 类型示例

在 NotePad 示例项目的 NotePad(上面链接)类中,您会发现:

public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.google.note";

此字段定义自定义 MIME 类型(可通过 type/subtype 模式识别)。

Android 建议您使用 vnd.android.cursor.dir/... 作为任何类型“目录列表”(多个项目)和 vnd.android.cursor 的第一部分.item/... 作为任何类型的单个项目的第一部分。

对于子类型,再次建议以 vnd. 开头,然后添加类似您的反向域名/包名称的内容,例如vnd.android.cursor.item/vnd.com.mydomain.myapp.mydata

为了避免代码中出现所有那些 vnd... 字符串,ContentResolver 中还有一些常量,例如 CURSOR_DIR_BASE_TYPECURSOR_ITEM_BASE_TYPE .

关于android - <data> 中的 mimeType 属性是做什么用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7157129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com