gpt4 book ai didi

android - 获取联系人的群组?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:00:30 24 4
gpt4 key购买 nike

我正在尝试将联系人映射到群组。

例如,如果我有:

  • 用户1,属于701、702、704组
  • 用户 2,不属于任何组
  • 用户 3,属于组 702

我希望得到如下所示的关系:

userID | groupID
1 | 701
1 | 702
1 | 704
3 | 702

我已经试过了:

Cursor cursor = contentResolver.query(ContactsContract.Data.CONTENT_URI, null, new String[] {
ContactsContract.CommonDataKinds.GroupMembership.CONTACT_ID,
ContactsContract.CommonDataKinds.GroupMembership.GROUP_SOURCE_ID
}, null, null, null);

但这并不完全有效。 GROUP_SOURCE_ID 列返回不是任何组 ID 的奇怪数字。有时它甚至返回 0 或负数。

我可以通过遍历每个组并找到该组中的所有联系人来构建它的映射,但这需要大量查询,而且我正在努力保持快速(显然,仅这几个查询就相当慢!)。

谁能告诉我如何在一次查询中获得联系人到群组的映射?

谢谢!

最佳答案

    Cursor dataCursor = getContentResolver().query(
ContactsContract.Data.CONTENT_URI,
new String[]{
ContactsContract.Data.CONTACT_ID,
ContactsContract.Data.DATA1
},
ContactsContract.Data.MIMETYPE + "=?",
new String[]{ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE}, null
);

通过使用此dataCursor,您将获得联系人数据库中所有联系人的contact_idgroup_id

    Cursor groupCursor = getContentResolver().query(
ContactsContract.Groups.CONTENT_URI,
new String[]{
ContactsContract.Groups._ID,
ContactsContract.Groups.TITLE
}, null, null, null
);

通过使用此groupCursor,您将获得联系人数据库中所有组的group_idgroup_title

因此,如果您想获取与 contact_id 关联的所有组,首先使用合适的选择语句获取 dataCursor。使用 dataCursor,您可以获得与该 contact_id 关联的所有 group_id。现在使用 groupCursor,您可以获得与该特定联系人关联的所有组的信息。

关于android - 获取联系人的群组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14097582/

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