检索特定联系人的所有详细信息

Posted

技术标签:

【中文标题】检索特定联系人的所有详细信息【英文标题】:Retrieving all details for a specific contact 【发布时间】:2018-10-29 17:52:04 【问题描述】:

我有 android 中特定联系人的 ID 和查找键。

据此,我需要提取用户保存的所有详细信息。详细信息包括联系人、电子邮件 ID、地址、电话号码、传真、Facebook ID 等。

这是文档中给出的内容

检索所有数据的投影:

private static final String PROJECTION =
            
                Data._ID,
                Data.MIMETYPE,
                Data.DATA1,
                Data.DATA2,
                Data.DATA3,
                Data.DATA4,
                Data.DATA5,
                Data.DATA6,
                Data.DATA7,
                Data.DATA8,
                Data.DATA9,
                Data.DATA10,
                Data.DATA11,
                Data.DATA12,
                Data.DATA13,
                Data.DATA14,
                Data.DATA15
            ;

但是我怎么知道哪些字段与哪个字段相关呢?这些 DATA 字段是通用字段,文档有点混乱。谁能帮我解析这个投影给出的光标?

这里是我指的documentation。

【问题讨论】:

【参考方案1】:

您需要首先检查Data.MIMETYPE,根据mimetype,您可以推断出哪个数据值驻留在哪个DATA项目中。

例如,如果MIMETYPECommonDataKinds.Phone.CONTENT_ITEM_TYPE,那么您可以检查此表中描述的别名以了解这些值: https://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.Phone#column-aliases

或者,您可以将PROJECTION 更改为:

private static final String PROJECTION =
            
                Data._ID,
                Data.MIMETYPE,
                Phone.NUMBER, 
                Phone.TYPE, 
                Email.ADDRESS,
                Email.TYPE,
                ...
            

由于这些别名转换为同一组常量(DATA1、DATA2 等),因此不会影响性能,并且代码可能更具可读性。

【讨论】:

以上是关于检索特定联系人的所有详细信息的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的离子4应用程序中检索特定的详细信息新闻

如何获取特定联系人的联系人姓名详细信息

如何在 Android 中获取联系人的所有详细信息

访问 android 联系人所有详细信息的最佳方式

如何一次查询联系人的所有详细信息

Android:在 Contact Uri 列表中显示所有有电话号码的联系人详细信息