Я работаю над приложением Android Honeycomb (v3.0), которое требует отображения ВСЕХ контактов, хранящихся в учетной записи Google, зарегистрированной на устройстве. Одна из проблем, с которыми я сталкиваюсь, заключается в том, что я могу получить только те контакты, которые доступны в «Моих контактах», «Помеченные в Android» и «Другие контакты». Я также хотел бы иметь возможность извлекать контакты из «Каталога». Я считаю, что раздел «Каталог» — это функция, предоставляемая Google организациям и компаниям, которые хотят предоставить каталог всех участников/сотрудников в своих доменах другим. Пожалуйста, посмотрите на скриншот ниже:
Пока у меня есть следующая строка в моем файле манифеста:
<uses-permission android:name="android.permission.READ_CONTACTS" />
Я пробовал использовать этот код:
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
}
cursor.close();
В моем случае «Мои контакты» и «Помеченные в Android» пусты. Тем не менее, (1) контакт в «Другие контакты» получается. Однако «Каталог» содержит сотни контактов, которые не извлекаются.
Мой вопрос: есть ли способ убедиться, что контакты в «Каталоге» также извлекаются? Я знаю, что могу просто скопировать контакты с помощью веб-браузера, а затем синхронизировать их с устройства, но если в "Справочник" добавляется новый контакт, мне пришлось бы каждый раз делать это вручную, так что для меня это не лучший выбор. Пожалуйста, порекомендуйте.
String selection = null;
вернула тот же результат, что и у меня изначально с кодом, который я упомянул. - person BVB   schedule 24.01.2012