检索附加了特定帐户的所有联系人

Posted

技术标签:

【中文标题】检索附加了特定帐户的所有联系人【英文标题】:Retrieving all Contacts that have a specific Account attached to them 【发布时间】:2012-10-18 17:19:08 【问题描述】:

我正在制作一个通信应用程序,该应用程序已在 AccountManager 中设置了特定的帐户类型,并附加了一个 SyncAdapter。我的一些联系人有一个 RawContact,其中包含我的新帐户的 MIMETYPE 和一些相关数据。

我正在寻找正确的方法来查询手机联系人列表中每个联系人的列表/光标,这些联系人列表中附加了这些新帐户之一。我想获取整个联系人,以便我可以检索他们的电话号码、显示名称和图片 uri,但我只需要附加了我的新帐户类型的联系人。

我有一种感觉,我需要将两个表与一些投影或选择参数连接在一起,以在一个光标对象中获取所有这些数据。我只是不确定到底该怎么做,尽管我已经尝试了很多不同的事情,即能够获取所有联系人,或者我的特定帐户类型的所有 RawContact 行,但不能同时获取。

谢谢

【问题讨论】:

【参考方案1】:

获取与帐户类型和名称匹配的所有联系人的Raw_Id

    getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI,
                                 new String[]ContactsContract.RawContacts._ID,
                                 ,
                                ContactsContract.RawContacts.ACCOUNT_NAME + " = ? AND " +
                                ContactsContract.RawContacts.ACCOUNT_TYPE + " = ? ",
                                new String[]mAcccountName,mAccountType,null
                             );

对于每个_ID,从ContactsContract.Data 获取所有行,ContactsContract.RawContacts._ID 匹配ContactsContract.Data.RAW_CONTACT_ID 这里。

这些行包含与该联系人的Raw_id 相关的所有数据。

参考the documentationContactsContract.Data表的结构,以及它保存的数据。

【讨论】:

请看我的查询...***.com/questions/20215108/…

以上是关于检索附加了特定帐户的所有联系人的主要内容,如果未能解决你的问题,请参考以下文章

如何从自定义帐户中检索联系方式?

如何从电话簿中获取与 android 中特定联系人相关联的所有社交帐户?

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

检索特定联系人组

Android:如何在一个查询中列出属于特定 RawContacts 帐户的所有数据行

SOQL查询不会检索所有联系人