2011-05-19 57 views
3

我無法獲取存儲聯繫人的組名。我可以得到它是否作爲布爾值(IN_VISIBLE_GROUP)添加到任何組中。我不知道如何獲取組名或ID。如何獲取聯繫人組ID或名稱?

 ContentResolver cr = this.getContentResolver(); 
     Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, 
       null, null, null); 
    if (cur.getCount() > 0) { 
    while (cur.moveToNext()) 
      { 

       id = cur.getString(cur 
         .getColumnIndex(BaseColumns._ID)); 

       String name = cur 
         .getString(cur 
           .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 

       String group = cur 
       .getString(cur 
         .getColumnIndex(ContactsContract.Contacts.IN_VISIBLE_GROUP)); 

我一直在使用ContactsContract.Groups和ContactsContract.Groups和ContactsContract.CommonDataKinds.GroupMembership嘗試,但不是解決方案。

+0

Normaly,你可以使用[ContactsContract.Groups(http://developer.android.com/reference/android/provider/ContactsContract.Groups.html)級。爲什麼它不適合你? – 2011-05-19 10:32:00

+0

@Lukas我用字符串克= CUR \t \t \t \t \t .getString(CUR1 \t \t \t \t \t \t \t .getColumnIndex(ContactsContract.Groups.TITLE));但返回相同的BaseColumns._ID.Any代碼片段,以獲取使用ContactsContract.Groups請.. – adithi 2011-05-19 11:08:01

+0

您可以檢查基本的Android聯繫人應用程序,誰可以找到源代碼[here](https://github.com/android/platform_packages_apps_contacts /樹/主/ src/com/android/contacts) – 2011-05-19 16:21:56

回答

0

請更改

ContentResolver cr = this.getContentResolver(); 

Uri groupURI = ContactsContract.Data.CONTENT_URI; 


Cursor cur = cr.query(groupURI , null, null, null, null); 


// Now you can get group ID from cursor 

String groupRowId = cur.getString (cur.getColumnIndex(ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID)); 
1

這是如何通過其title要獲得組ID的完整版本。基本上它迭代all groups並比較標題以找到它的id

private String getGroupId(String groupTitle) { 
    Cursor cursor =getContentResolver().query(ContactsContract.Groups.CONTENT_URI,new String[]{ContactsContract.Groups._ID,ContactsContract.Groups.TITLE}, null, null, null);  
    cursor.moveToFirst(); 
    int len = cursor.getCount(); 

    String groupId = null; 
    for (int i = 0; i < len; i++) { 
     String id = cursor.getString(cursor.getColumnIndex(Groups._ID)); 
     String title = cursor.getString(cursor.getColumnIndex(Groups.TITLE)); 

     if (title.equals(groupTitle)) { 
      groupId = id; 
      break; 
     } 
     cursor.moveToNext(); 
    } 
    cursor.close(); 

    return groupId; 
} 
相關問題