Как уже говорилось, контакты принадлежат учетным записям. Каждая учетная запись имеет собственный набор контактов, которые называются низкоуровневыми контактами. Каждый низкоуровневый контакт, в свою очередь, обладает собственным набором элементов данных (например, адресом электронной почты, телефонным номером, именем и почтовым адресом). Кроме того, Android поддерживает агрегированное представление низкоуровневых контактов за счет включения в список только по одному экземпляру контактов, которые выглядят совпадающими. Эти агрегированные контакты формируют набор контактов, отображаемый на первой странице приложения People.
Далее мы посмотрим, каким образом контакты и относящиеся к ним данные хранятся в разнообразных таблицах. Знание этих таблиц и связанных с ними представлений является ключом к пониманию всего API-интерфейса для работы с контактами.
Исследование баз данных SQLite для хранения контактов
Один из способов ознакомления с таблицами базы данных контактов предполагает загрузку этой базы данных из устройства или эмулятора на рабочую станцию и открытие ее в одном из инструментов SQLite, предназначенных для просмотра.
Для загрузки базы данных контактов воспользуйтесь вкладкой File Explorer (Проводник файлов), показанной., и перейдите внутри эмулятора в следующий каталог:
/data/data/com.android.providers.contacts/databases
В зависимости от выпуска, имя файла базы данных может несколько отличаться, но должно выглядеть как contacts.db либо contacts.db или похожим образом. В версии Android. поставщик контактов использует для хранения контактов, относящихся к персональному профилю, аналогично структурированный, однако отдельный файл базы данных по имени profile.db.
Теоретически все, что понадобится сделать — это открыть одну из этих баз данных, скажем, contacts.db, с помощью подходящего инструмента SQLite. Однако при открытии этой базы данных мы столкнулись с проблемой. Большинство инструментов с этим не справились. Проблема связана со специальными последовательностями сопоставления, определенными в Android для таких аспектов, как сравнение телефонных номеров.
Если сломался ваш любимый айфон, то вам сюда - http://modmac.ru/services/iphone/iphone-5s/.
Вполне очевидно, что специальные последовательности сопоставления компилируются как часть дистрибутива SQLite. При отсутствии DLL-файлов, которые компилировались в дистрибутив Android, средство просмотра общего назначения не сможет корректно прочитать базу данных контактов. Поскольку для открытия базы данных, созданной в дистрибутиве Android для Linux, используются инструменты, работающие с DLL-файлами SQLite для Windows, они терпят неудачу. А в дистрибутиве SQLite для Windows не определены последовательности сопоставления, которых требует база данных контактов.
Однако нам достаточно повезло, что программа SQLite Explorer все же позволяет просмотреть таблицы, несмотря на отказ в публикации схемы базы данных. Возможно, другие платные инструменты покажут себя лучше. По следующей ссылке можно ознакомиться с дополнительными инструментами для SQLite:
www.sqlite.org/cvstrac/wiki?p=ManagementTools
Любознательные читатели могут почитать нашу исследовательскую статью, посвященную последовательностям сопоставления, которая доступна по такому адресу:
www.androidbook.com/item/
На случай, если с просмотром базы данных возникли сложности, далее в этой будут перечислены все важные таблицы. Начнем с исследования низкоуровневых контактов.
Опубликовал katy
February 19 2015 18:24:59 ·
0 Комментариев ·
4075 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.