我按 id
获取给定组ID中的联系人列表Cursor cur = ctx.managedQuery(ContactsContract.Data.CONTENT_URI,
new String[] { GroupMembership.GROUP_ROW_ID,
GroupMembership.CONTACT_ID },
GroupMembership.GROUP_ROW_ID + "=" + String.valueOf(id),
null, null);
if (cur.moveToFirst()) {
int groupIdx = cur.getColumnIndex(GroupMembership.GROUP_ROW_ID);
int personIdx = cur.getColumnIndex(GroupMembership.CONTACT_ID);
do {
if (cur.getLong(groupIdx) == id) {
Cursor ccur = ctx.getContentResolver().query( Phone.CONTENT_URI,
new String[] {Phone.NUMBER, Phone.TYPE,
Phone.DISPLAY_NAME },
Phone.CONTACT_ID +"="+ contactId,
null, null);
Log.e("Test: Number", ccur.getString(0))
Log.e("Test: Name", ccur.getString(2))
}
} while (cur.moveToNext());
}
但似乎无效。
答案 0 :(得分:3)
可能你错过了mimetype。
String where = ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID + "="
+ groupid + " AND "
+ ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE + "='"
+ ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE + "'";
Cursor c = this.ctx.getContentResolver().query(
ContactsContract.Data.CONTENT_URI,
new String[] {
ContactsContract.CommonDataKinds.GroupMembership.RAW_CONTACT_ID,
ContactsContract.Data.DISPLAY_NAME
}, where, null, ContactsContract.Data.DISPLAY_NAME + " COLLATE LOCALIZED ASC");