Android联系人database
的一列称为mimetypes
。实例化database
时,默认情况下会创建该值。
我发现了一个试图解决完全相同的问题的问题,但是即使有一个公认的答案,也无法解决该问题。(在下面的链接上)
"1" "vnd.android.cursor.item/email_v2"
"2" "vnd.android.cursor.item/im"
"3" "vnd.android.cursor.item/nickname"
"4" "vnd.android.cursor.item/organization"
"5" "vnd.android.cursor.item/phone_v2"
"6" "vnd.android.cursor.item/sip_address"
"7" "vnd.android.cursor.item/name"
"8" "vnd.android.cursor.item/postal-address_v2"
"9" "vnd.android.cursor.item/identity"
"10" "vnd.android.cursor.item/photo"
"11" "vnd.android.cursor.item/group_membership"
"12" "vnd.android.cursor.item/note"
"13" "vnd.android.cursor.item/contact_event"
"14" "vnd.android.cursor.item/website"
"15" "vnd.android.cursor.item/relation"
"16" "vnd.com.google.cursor.item/contact_misc"
现在,我想阅读此column
槽式上下文提供程序,并以mimetype
的形式获取每个integer
的ID,即我对字符串不感兴趣,但对ID本身不感兴趣。我还没有找到任何提供这种可能性的Context提供程序。有没有办法做到这一点。理想情况下,我希望收到的是代表该列的HashMap<Integer, String>
。
请注意,我知道如何在mimetype
中获取record
的{{1}},即
data column
这不是我想要的。我正在寻找String mimetype = cursorData.getString(cursorData.getColumnIndex(ContactsContract.Data.MIMETYPE ));
列。
答案 0 :(得分:0)
要总结评论中的讨论,没有API可以读取所有模拟类型的列表,因为这是Contacts DB使用的内部表,并且不是外部API要求的一部分。
如果需要为每个模仿类型设置一些恒定的ID,则开发人员可以创建可通过API获得的所有已知模仿类型的静态列表(可以查询),并为每个模仿类型设置自己的ID。 由于mimetypes可以由应用程序开发人员免费添加,因此该列表仅支持Android提供的mimetypes,而不支持自定义mimtypes。