Использование ContactsContract.Contacts.Data

1

В документации на Android я понимаю, что могу добавить строку ContactsContract.Contacts.Data.CONTENT_DIRECTORY в ContactsContract.Contacts.CONTENT_URI и иметь доступ к полям "Контакты" и "Данные". К сожалению, я получаю исключение с этим кодом

Cursor cursor = context.getContentResolver().query(
    Uri.withAppendedPath(Contacts.CONTENT_URI, Contacts.Data.CONTENT_DIRECTORY), 
    null, null, null, null);

Исключением я получаю:

java.lang.IllegalArgumentException: URI: content://com.android.contacts/contacts/data, calling user: ...

Что я делаю неправильно? Примечание. Я использую Android 2.1

Теги:
android-contentprovider
android-contacts

1 ответ

1
Лучший ответ

Что-то, о чем не говорится в документации, является то, что ContactsContract.Contacts.Data предназначен для доступа к объединенной таблице контактов и данных для одного контакта. Он ожидает увидеть идентификатор контакта или ключ поиска. Я везде искал, но в настоящее время нет возможности присоединиться к таблицам "Контакты" и "Данные". Надеюсь, они добавят поддержку для этого. Похоже, что единственным открытым API для объединения полных таблиц является RawContactsEntity (который отличается от RawContacts.Entity в этом отношении)

Итак, AFAIK аналогия:
RawContacts.Entity - Контакты.

поскольку RawContactsEntity ничего.

Android действительно нужно добавить поддержку для полного объединения таблиц не только из RawContacts

Ещё вопросы

Сообщество Overcoder
Наверх
Меню