gpt4 book ai didi

android - ContactsContract.Contacts 查询特定账户

转载 作者:行者123 更新时间:2023-11-29 19:26:37 27 4
gpt4 key购买 nike

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

ContactsContract.Contacts 表有 IN_VISIBLE_GROUP 列,它对联系人组成员身份有效。因此,如果用户为帐户选择了各种组成员身份,则会设置此列。

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

我希望能够执行一个查询并返回一个游标,该游标具有完全正确的一组聚合(意思是来自联系人表)联系人。这可能吗?

最佳答案

find all aggregate contacts for a specific account name & type

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

您可以查询特定帐户的所有RawContacts:

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,你可以把你在上面的查询中找到的所有contact-ids放在一个数组中,然后在Contacts表上查询:

Cursor c = cr.query(Contacts.CONTENT_URI, 
new String[]{ Contacts._ID, Contacts.DISPLAY_NAME, ... },
Contacts._ID + " IN (" + arrayOfIds + ")", null, null);

关于android - ContactsContract.Contacts 查询特定账户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41251071/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com