2010-06-09 41 views
1

我得到了一个给定组ID的联系人列表中得到显示的姓名和号码:Android 2.0的如何通过<em>ID</em>一个联络小组

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()); 
} 

但似乎无法正常工作。

回答

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"); 
+0

感谢您的快速回复。 ContactsContract.CommonDataKinds.GroupMembership.RAW_CONTACT_ID和ContactsContract.CommonDataKinds.GroupMembership.CONTACT_ID有什么不同? – 2010-06-09 21:55:31

+0

http://groups.google.com/group/android-developers/browse_thread/thread/77d579d60d803094 – Pentium10 2010-06-09 21:57:56

相关问题