您的位置:首页 > 移动开发 > Android开发

ANDROID中vnd.android.cursor的解释

2015-10-13 19:08 323 查看
学习到Content Provider,遇到自定义MIME类型vnd.android.cursor,一直看不懂是什么。其实vnd是vendor-specific的意思,下面是我好不容易找到的详细解释,分析给大家。

引用MIME类型Contentprovider可以返回标准的MIME类型或自定义的MIME类型字符串,或同时返回两者。

MIME类型具有以下形式:type/subtype。

例如,世人皆知的MIME类型text/html具有text类型和html子类型。如果provider从一个URI返回此类型,这表示面向此URI的查询将返回带有HTML标记的文本。

自定义的MIME字符串,也被叫做"vendor-specific"MIME类型,具有更复杂的类型和子类型值,此类型的值总是这样

vnd.android.cursor.dir。用于多行,或这样

vnd.android.cursor.item。用于单行。

而子类型是每个provider都不相同的。Android内置的provider通常具有一个间单的字类型。例如,当联系人应用为一个电话号码创建一个新行时,它为新行设置下面的MIME类型:

vnd.android.cursor.item/phone_v2

可以看到子类型的值只是简单的phone_v2.

其它provider开发者可能基于provider的authority和表名字创建他们自己的子类型式样。例如,假设一个provider含有列车时刻表,provider的authority是com.example.trains,并且它包含三个表:线路1,线路2,线路3。在URI的响应中,

content://com.example.trains/Line1。指向线路1表,provider返回对应的MIME类型为:

vnd.android.cursor.dir/vnd.example.line1

而content URI:content://com.example.trains/Line2/5。指向线路2表的第5行,provider返回的对应的MIME类型为:

vnd.android.cursor.item/vnd.example.line2

大多数contentproviders定义了契约类来包含它们所用到的MIME类型。例如,联系人Provider的契约类ContactsContract.RawContacts,定义了常量CONTENT_ITEM_TYPE,它对应于一行原始的联系人数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: