Использование ContactsContract.Contacts.Data - PullRequest
1 голос
/ 15 апреля 2011

Из документации 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

1 Ответ

1 голос
/ 03 июня 2011

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

Так что AFAIK аналогия:
RawContacts.Entity для Contacts.Data
как RawContactsEntity ни к чему.

Android действительно необходимо добавить поддержку полных объединений таблиц не только в RawContacts

...