2010-12-16 26 views
2

我正在運行Android SDK中的聯繫人管理器示例應用程序。當我將聯繫人添加到我的Gmail帳戶時,會將其添加爲「隱形聯繫人」。我認爲這是因爲我沒有告訴聯繫人應該分配哪個「組」。我一直在環顧網絡幾天,空手而歸。如何讓聯繫人組進入聯繫人管理器示例應用程序?

我真正想要做的是將聯繫人添加到我選擇的聯繫人帳戶,並將聯繫人與所選Gmail帳戶中的聯繫人組關聯,以便聯繫人的信息將顯示在用戶的聯繫人中。

+0

是否有一個原因,我不能得到這個問題的答案地方?我錯過了一些基本的東西,還是沒有好的答案? – Chris 2010-12-21 19:46:57

回答

0

您定位的Android版本是?您當然知道,聯繫人API在2.x中發生了根本性的變化...

我遇到了這個確切的隱形聯繫人問題,但僅限於1.x.我找到了解決辦法是添加到內置的「我的聯繫人」組:

// Add to the My Contacts group 
ContentValues values = new ContentValues(); 
values.put(GroupMembership.PERSON_ID, contact.mAndroidId); 
values.put(GroupMembership.GROUP_ID, 1); // 1 is always the ID of the built-in "My Contacts" group 
activity.getContentResolver().insert(GroupMembership.CONTENT_URI,values); 

如果你想添加到特定的用戶定義的組,而不是我的通訊錄中,您將需要的捕漁權GROUP_ID出的Contacts.Groups表。

1

,使其與新ContactsContract API的工作,你可以添加這個到ContentProviderOperation列表:

ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) 
      .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) 
      .withValue(ContactsContract.Data.MIMETYPE, 
        ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE) 
      .withValue(ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID, 1) 
      .build());