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