2010-06-09 37 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

相關問題