安卓联系人2.db读取 mimetype 列(不是数据表中的记录)



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的 id 作为integer即我对字符串不感兴趣,而是对 id 本身感兴趣。我还没有找到任何上下文提供程序可以给我这种可能性。有没有办法做到这一点。理想情况下,我希望收到的是代表该列的HashMap<Integer, String>

请注意,我知道如何在data column中获取recordmimetype,即

String mimetype = cursorData.getString(cursorData.getColumnIndex(ContactsContract.Data.MIMETYPE ));

这不是我要找的。我正在寻找mimetypes列。

总结一下注释中的讨论,没有 API 来读取所有 mimetype 的列表,因为这是联系人数据库使用的内部表,不是外部 API 要求的一部分。

如果需要为每个 mimetype 设置一些常量 ID,开发人员可以创建通过 API 提供的所有已知 mimetype 的静态列表(可以查询(,并为每个 MIMETYPE 设置自己的 ID。 由于 mimetypes 可以由应用程序开发人员免费添加,因此此列表仅支持 Android 提供的 mimetypes,而不支持自定义类型。

最新更新