2010-12-16 7 views
2

Android SDK에서 Contact Manager 샘플 앱을 실행하고 있습니다. 내 Gmail 계정에 연락처를 추가하면 '보이지 않는 연락처'로 추가됩니다. 나는 그룹에 할당되어야하는 연락처를 말하지 않기 때문에 이것이라고 가정합니다. 나는 며칠 동안 인터넷을 둘러 보았고 빈 손으로 올랐다.Contact Manager 샘플 그룹에 연락처 그룹을 가져 오는 방법은 무엇입니까?

정말로하고 싶은 일은 내가 선택한 연락처 계정에 연락처를 추가하고 연락처를 선택한 Gmail 계정 내 연락처 그룹과 연결하여 연락처 정보가 사용자의 연락처에 표시되도록하는 것입니다.

+0

난 아무데도이 질문에 대한 답을 얻을 수없는 이유가 있습니까? 나는 기본적인 것을 놓치고 있는가? 아니면 좋은 대답이 없는가? – Chris

답변

0

어떤 Android 버전을 타겟팅하고 있습니까? 물론 Contacts 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());