ContactsContract.Contacts查询特定帐户

时间:2016-12-20 20:53:09

标签: android contactscontract

是否有一个有效的查询来查找特定帐户名称的所有汇总联系人。类型?

ContactsContract.Contacts表格包含IN_VISIBLE_GROUP列,对联系人群组成员资格有效。因此,如果用户为帐户选择了各种组成员资格,则将设置此列。

似乎没有任何等效的in-visible-account列。但是,Android联系人应用允许选择要查看的特定帐户,而无需点按“自定义”并选择群组。这样做会更新ContactsContract.Settings表。效果似乎没有达到Contacts表格。

我希望能够执行一个查询并获得一个具有完全正确的聚合集(意味着来自Contacts表)联系人的光标。这可能吗?

1 个答案:

答案 0 :(得分:2)

  

查找特定帐户名称的所有汇总联系人。型

Contacts是特定于帐户的,它们由多个RawContacts组合而成,每个Account可以保存在不同的RawContacts上。

您可以查询特定Account的所有Cursor c = cr.query(RawContacts.CONTENT_URI, new String[]{ RawContacts._ID, RawContacts.CONTACT_ID, RawContacts._ID, ... }, RawContacts.ACCOUNT_NAME + " = '" + accountName + "' AND " + RawContacts.ACCOUNT_TYPE + " = '" + accountType + "'", null, null);

Contacts

如果您需要Contacts,可以将上述查询中找到的所有联系人ID放在数组中,并在Cursor c = cr.query(Contacts.CONTENT_URI, new String[]{ Contacts._ID, Contacts.DISPLAY_NAME, ... }, Contacts._ID + " IN (" + arrayOfIds + ")", null, null); 表上查询:

$index