Как получить группы контактов в образце приложения Contact Manager? - PullRequest
2 голосов
/ 16 декабря 2010

Я запускаю пример приложения Contact Manager из Android SDK.Когда я добавляю контакт в свою учетную запись Gmail, он добавляется как «невидимый контакт».Я предполагаю, что это потому, что я не говорю контакту, к какой «группе» он должен быть отнесен.Я искал в Интернете несколько дней и пришел с пустыми руками.

Что я действительно хочу сделать, так это добавить контакт в выбранную мной учетную запись контакта и связать контакт с группой контактов.в выбранной учетной записи Gmail, поэтому информация о контакте будет отображаться в контактах пользователя.

Ответы [ 2 ]

1 голос
/ 10 апреля 2011

Чтобы заставить его работать с новым API ContactsContract, вы можете добавить его в список 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());
0 голосов
/ 23 декабря 2010

На какую версию 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...