检索特定联系人的组

| 我想检索联系人详细信息以及它所属的组。我得到了列出电话中所有联系人组的代码。
Cursor groupC = getContentResolver().query(
    ContactsContract.Groups.CONTENT_URI, null, null, null, null); 

while (groupC.moveToNext()) { 
    String groupid =
        groupC.getString(groupC.getColumnIndex(ContactsContract.Groups._ID));
    Log.e(\"myTag\", groupid); 
    String grouptitle =
        groupC .getString(groupC.getColumnIndex(ContactsContract.Groups.TITLE));
    Log.e(\"myTag\", grouptitle);
}
groupC.close();
然后,我尝试使用其ID查询特定联系人,但始终显示“ 1”。
Cursor groupC = getContentResolver().query(
    ContactsContract.Groups.CONTENT_URI,
    null,
    ContactsContract.Contacts._ID+\"= ?\",
    new String[]{id},
    null);
id在哪里
Cursor cur = cr.query(
    ContactsContract.Contacts.CONTENT_URI,
    null,
    null,
    null,
    null);
id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
如何使用特定的联系人ID来查询组?     
已邀请:
我找到了答案。我们应该传递原始的contact-id和正确的mime类型。
  String where = ContactsContract.Data.RAW_CONTACT_ID
            + \"=\"
            + Integer.parseInt(id)
            + \" AND \"
            + ContactsContract.Data.MIMETYPE
            + \"=\'\"
            + ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE
            + \"\'\";

    Cursor cursor = ctx
            .getContentResolver()
            .query(ContactsContract.Data.CONTENT_URI, null, where, null,
                    null);
    startManagingCursor(cursor);
    Log.e(\"Count is:\", \"\"+ cursor.getCount());
    while (cursor.moveToNext()) {
        groupid = cursor
                .getString(cursor.getColumnIndex(ContactsContract.Data.DATA1));
        Log.e(\"groupid\", groupid);
        builder.append(groupid);

    }String where = ContactsContract.Data.RAW_CONTACT_ID
            + \"=\"
            + Integer.parseInt(id)
            + \" AND \"
            + ContactsContract.Data.MIMETYPE
            + \"=\'\"
            + ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE
            + \"\'\";

    Cursor cursor = ctx
            .getContentResolver()
            .query(ContactsContract.Data.CONTENT_URI, null, where, null,
                    null);
    startManagingCursor(cursor);
    Log.e(\"Count is:\", \"\"+ cursor.getCount());
    while (cursor.moveToNext()) {
        groupid = cursor
                .getString(cursor.getColumnIndex(ContactsContract.Data.DATA1));
        Log.e(\"groupid\", groupid);
        break;
    }
一个联系人可能在一个以上的组中,在此它首先返回其第一组。 我认为这可能对某人有用...     

要回复问题请先登录注册