В основном все больше похоже на черно-белое, на одном телефоне (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 я получаю нулевое значение для идентификатора группы.Конечно, восстановление на моем телефоне работает нормально, а на другом телефоне контакт не виден, поскольку он не принадлежит ни к одной видимой группе ...
Есть идеи?