在开发人员指南的最后,他们描述了vnd.android.cursor.dir
是每个自定义MIME类型的type
部分,用于多行;vnd.android.cursor.item
用于单行。
然后有一个包含火车时刻表的内容提供程序示例。它authority
是com.example.trains
的,它有表Line1
、Line2
和Line3
。对于它的内容 URI
content://com.example.trains/Line2/5
这显然指向"Line2
表中的第 5 行",返回的 MIME 类型将是:
vnd.android.cursor.item/vnd.example.line2
这并不指示它是哪一行。
问题:
我认为它应该是这样的:
vnd.android.cursor.item/vnd.example.line2.5
因为
type
部分确实描述了它是特定行的 MIME 类型,所以子类型还应该描述它所在的行是。不是吗?如果
vnd.android.cursor.item/vnd.example.line2
是正确的,则意味着 MIME 类型是否属于特定行并不重要。这是否意味着表中的所有行都具有相同的 MIME 类型?因为MIME类型只是互联网上的文件类型。(参考资料)所以我认为由于所有行都具有相同的数据"类型"(或者换句话说,表中的行是同一事物的实例) - 所以我认为表中的所有行本质上都应该具有相同的 MIME 类型?如果^是YES,那么将分类分为
vnd.android.cursor.dir
和vnd.android.cursor.item
有什么意义?
我认为它应该是这样的:
vnd.android.cursor.item/vnd.example.line2.5
因为类型部分确实描述了它是特定行的 MIME 类型,所以子类型还应描述它是哪一行。不是吗?
不,只text/html.30821182
此网页的 MIME 类型,因为它恰好是此网站上的问题 #30821182。Android 中的 MIME 类型表示数据格式。
这是否意味着表中的所有行都具有相同的 MIME 类型?
在该提供商中,是的。
因为MIME类型只是互联网上的文件类型。
Android 扩展了 MIME 类型的定义,使其比文件更通用。在ContentProvider
的数据库式API的情况下,MIME类型主要用于将Uri
的数据结构与可以使用该数据结构的活动链接起来。
我认为表中的所有行本质上都应该具有相同的 MIME 类型?
这是数据库样式的ContentProvider
API 的典型模式。
那么将分类为 VND.android.cursor.dir 和 vnd.android.cursor.item 有什么意义呢?
前者表示内容的集合,即 SQL 数据库中的表或视图。后者表示内容的实例,即 SQL 数据库中的表或视图中的行。