Ошибка получения идентификатора группы контактов в Android 2.1+ - PullRequest
0 голосов
/ 05 октября 2011

В основном все больше похоже на черно-белое, на одном телефоне (Galaxy S) работает нормально, а на другом (Nexus one, у моего клиента, конечно) нет.

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

cursor = contentResolver.query(ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id), null, null, null, null);

if (cursor != null && cursor.getCount() >0)
{
    cursor.moveToFirst();

    id = cursor.getLong(cursor.getColumnIndex(ContactsContract.Contacts._ID));
    //get all the things I need like phones, picture, etc

}

Используя этот идентификатор, я пытаюсь получить идентификатор группы контакта

cursor = contentResolver.query(ContactsContract.Data.CONTENT_URI,
                     null,
                     ContactsContract.Data.RAW_CONTACT_ID
                        + "="
                        + id
                        + " AND "
                        + ContactsContract.Data.MIMETYPE
                        + "='"
                        + ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE
                        + "'",
                        null,
                        null);
            if (cursor != null && cursor.getCount() >0)
            {
                cursor.moveToFirst();

                groupId= cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DATA1));
                cursor.close();
            }

Ну, тестируя, добавляя новый контакт, на моем телефоне я получаю groupId = 1, что означает Система: Мои контакты.На Nexus One я получаю нулевое значение для идентификатора группы.Конечно, восстановление на моем телефоне работает нормально, а на другом телефоне контакт не виден, поскольку он не принадлежит ни к одной видимой группе ...

Есть идеи?

1 Ответ

0 голосов
/ 10 октября 2011

Проблема была в недоразумении ... Мне нужно было получить RAW Contact ID, и я использовал ContactID .. поэтому, прежде чем искать GroupId, мне нужно было получить Contact Raw Id

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