2010-12-16 2 views
2

Я запускаю пример приложения Contact Manager из 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()); 
Смежные вопросы