【发布时间】:2017-06-13 20:10:46
【问题描述】:
我正在尝试将联系人与组进行多对多映射。
例如,如果我有:
- 用户 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 或负数。
我可以通过遍历每个组并查找该组中的所有联系人来构建此映射,但这需要大量查询,而且我正在努力保持快速(显然,只有这几个查询相当慢!)。
谁能告诉我如何在一个查询中获得此联系人到群组的映射?
谢谢!
【问题讨论】:
标签: android