Ответ 1
Люди Android должны обновить документацию . На самом деле это помогло мне узнать меньше о том, что происходит, чем я мог бы догадаться. Это предполагает, что вы можете отменить Contact
, который будет содержать много RawContacts
, которые будут содержать Data
.
Эта интерпретация совершенно неверна. ContactContracts data вместо трех обычных обычных ежедневных таблиц базы данных *:
ContactContract Tables
Таблица Contacts
Доступ к URI:
Contacts.CONTENT_URI
Первичный ключ **:
Data._ID
Описание:
В этой таблице содержится информация о контакте (когда он был добавлен, что это значок пользователя, имеет ли он пользовательский рингтон).
Отношение: имеет отношение "1 ко многим" с таблицей
RawContact
.
Таблица RawContacts
Доступ к URI:
RawContacts.CONTENT_URI
Первичный ключ:
Data._ID
Внешний ключ **:
Data.CONTACT_ID
Описание:
В этой таблице содержится информация о соответствующем наборе элементов данных. RawContact может содержать тип электронной почты, отображаемое имя электронной почты, номер телефона, имя телефона и т.д. RawContact можно агрегировать с другими RawContacts, чтобы сделать
Contact
, как видит пользователь. Контакт может содержать только один RawContact.Отношение: имеет отношение "1 ко многим" с таблицей
Data
.
Таблица Data
Доступ к URI:
Data.CONTENT_URI
Первичный ключ:
Data._ID
Внешний ключ:
Data.RAW_CONTACT_ID
Описание:
В этой таблице содержится одно поле информации. Адрес электронной почты, номер телефона, тип номера телефона (домашний/рабочий), псевдоним, отображаемое имя.
В ответ на вопрос
Я загрузил весь образец проекта в GitHub, чтобы другие могли видеть, как запрашивать, обновлять и вставлять записи с помощью ContactContract.
Вы можете найти проект для загрузки здесь: https://github.com/gwoodhouse/ContactContractSample
Если вы просто хотите посмотреть на java-код, выполняющий запрос /update/insert, вот файл класса: https://github.com/gwoodhouse/ContactContractSample/blob/master/ContactsIntegration/src/com/woodhouse/example/activity/ContactsIntegrationActivity.java
Надеюсь, это поможет!
* Не таблица, а ContentProvider
** не строго верно.Суб >