Где хранятся контакты на Android: местоположение

Где хранятся контакты на Андроиде? Ответ на этот вопрос важно знать каждому пользователю мобильного устройства, ведь от этого зависит их сохранность. Если вы сбрасываете устройство до заводских настроек, а телефонная книга сохранена на внутреннем накопителе, рискуете остаться без номеров друзей и знакомых. Чтобы такая ситуация не застала вас врасплох, копируйте и синхронизируйте базу контактов на виртуальное хранилище.

Анализ базы данных

База данных системных контактов находится в следующих папках данных \ data \ com.android.providers.contacts \ базы данных \, обычные контакты хранятся в contacts2.db, а личная информация хранится в profile.db, но базовая структура обеих баз данных одинакова

Структура таблицы

Есть еще три важные таблицы: учетная запись, mimetype, данные, raw_contacts, контакты. Другие структуры таблиц используются реже. При возникновении проблем перейдите в ContactsProvider для просмотра кода.

Основная прямая связь между несколькими таблицами

Аккаунт связан с аккаунтом

В таблице данных хранится информация о контакте. В каждой строке хранится информация определенного типа для контакта (например, телефон, имя, адрес электронной почты, учетная запись социальной сети, адрес и т. д.).

Где данные хранятся в dataX (x — это число), в соответствии с mimetype_id этой строки, чтобы соответствовать типу информационных данных, таблица mimetype хранит несколько типов данных и _id, как показано на рисунке

соответствует коду, вы можете перейти к исходному коду через некоторые из следующих классов, чтобы увидеть, что mimetype и dataX являются соответствующими отношениями

Например:

Для других классов, пожалуйста, обратитесь к следующему определению

[java] view plaincopy

  1. String MIMETYPE_EMAIL_V2 = Email.CONTENT_ITEM_TYPE;//»vnd.android.cursor.item/email_v2″;
  2. String MIMETYPE_IM = Im.CONTENT_ITEM_TYPE;//»vnd.android.cursor.item/im»;
  3. String MIMETYPE_NICKNAME = Nickname.CONTENT_ITEM_TYPE;//»vnd.android.cursor.item/nickname»;
  4. String MIMETYPE_ORGANIZATION = Organization.CONTENT_ITEM_TYPE;//»vnd.android.cursor.item/organization»;
  5. String MIMETYPE_PHONE_V2 = Phone.CONTENT_ITEM_TYPE;//»vnd.android.cursor.item/phone_v2″;
  6. String MIMETYPE_SIP_ADDRESS = SipAddress.CONTENT_ITEM_TYPE;//»vnd.android.cursor.item/sip_address»;
  7. String MIMETYPE_NAME = StructuredName.CONTENT_ITEM_TYPE;//»vnd.android.cursor.item/name»;
  8. String MIMETYPE_POSTAL_ADDRESS_V2 = StructuredPostal.CONTENT_ITEM_TYPE;//»vnd.android.cursor.item/postal-address_v2″;
  9. String MIMETYPE_IDENTITY = Identity.CONTENT_ITEM_TYPE;//»vnd.android.cursor.item/identity»;
  10. String MIMETYPE_PHOTO = Photo.CONTENT_ITEM_TYPE;//»vnd.android.cursor.item/photo»;
  11. String MIMETYPE_GROUP_MEMBERSHIP = GroupMembership.CONTENT_ITEM_TYPE;//»vnd.android.cursor.item/group_membership»;
  12. String MIMETYPE_NOTE = Note.CONTENT_ITEM_TYPE;//»vnd.android.cursor.item/note»;
  13. String MIMETYPE_WEBSITE = Website.CONTENT_ITEM_TYPE;//»vnd.android.cursor.item/website»;

Ниже приведены представления в базе данных (некоторые инкапсуляции совместных запросов), некоторые из которых были помечены.

Выше приведены некоторые часто используемые таблицы данных и представления. Подробная структура таблицы данных, а также тип данных и значение каждого поля должны быть проверены в коде.

Два основных класса в ContactsProvider:

com.android.providers.contacts.ContactsDatabaseHelper

com.android.providers.contacts.ContactsProvider2

ContactsDatabaseHelper наследуется от SqliteOpenHelper, это операция создания и обновления базы данных, этот класс содержит подробные определения полей и типов данных каждой таблицы, а также обновления базы данных и контактов в соответствии с версией Оператор инкапсуляции данных CURD данных человеческой части, предоставляемый вызову ContactsProvider2

ContactsProvider2 наследуется от AbstractContactsProvider и представляет собой протокол для передачи данных между приложениями и базами данных. Доступ к нему осуществляется через Uri и определяет метод CURD, который необходимо использовать приложениям.

Процесс работы с данными в контактах

запрос данных

Возьмем DefaultContactBrowseListFragment в главном интерфейсе в качестве примера, отношения наследования такие, как показано

, как показано ниже:

Процесс загрузки данных интерфейса List, унаследованного от ContactEntryListFragment, выглядит следующим образом:

CursorLoader создается и управляется LoaderManager во фрагменте. Фрагмент содержит объект ContactEntryListAdapter. Конфигурация параметров CursorLoader помещается в ContactEntryListAdapter. После загрузки данных CursorLoader он вызывается обратно Исходя из фрагмента, а затем используйте ContactEntryListAdapter для управления обновлением данных и контроля пользовательского интерфейса

Адаптером, соответствующим DefaultContactBrowseListFragment, является DefaultContactListAdapter, а соответствующим курсором загрузки является ProfileAndContactsLoader.

Другие операции

Создание, обновление и удаление контактов обычно инкапсулируются в классе ContactSaveService, как показано на рисунке.

Класс ContactSaveService наследуется от IntentService и является службой для асинхронной обработки контактных данных. После завершения операции с данными намерение передается при запросе операции (намерение содержит действие, которое требует обратного вызова) И действие) обратный вызов в Activity для уведомления UIThread для выполнения обновления пользовательского интерфейса

Возьмем пример создания контакта:

метод ContactEditorFragment.save ()

CreateSaveContactIntent () в ContactSaveService, передавая параметры, необходимые для обратного вызова

ContactSaveService, saveContact ()

может выполнять обратный вызов Activity, поскольку базовый класс ContactsActivity Activity, связанный с операцией контакта, в Contact реализует ContactSaveService.Listener, а затем в onCreate ContactSaveService.registerListener (this), а затем с помощью вышеупомянутого Логика кода в конечном итоге вызовет

№4 Используем Блокнот (Notepad)

Еще один стандартный инструмент, который можно найти во всех версиях и редакциях Виндовс. Однако стоит предупредить, что просматривать VCF с его помощью не очень удобно. Тем не менее, если ничего другого под рукой нет, то и этот вариант подойдет.

1 Итак, ищем нужный файл требуемого формата и кликаем по нему правой кнопкой мыши. Выбираем пункт Открыть с помощью

2 Далее щелкаем Выбрать другое приложение

3 Появится окошко, в котором нужно выбрать Блокнот и нажать на ОК

4 Через несколько секунд файл откроется в таком виде.

Конечно, в таком виде понять что-нибудь сложно, но возможно. Можно попробовать поменять кодировку. После этого текст станет читабельнее. Для просмотра он станет более приемлемым.

Не самый удобный способ, но он существует. И о нем нельзя было не упомянуть.

Иногда текстовый редактор Блокнот не справляется с автоматическим определением кодировки при открытии формата VCF. Если вы видите такую же картину, как на скриншоте выше, то можно щелкнуть по кнопке Формат и попробовать поменять кодировку. Обычно подходит UTF-8. Но в некоторых случаях приходится подбирать варианты.

Основной интерфейс

Основным интерфейсом является интерфейс PeopleActivity, который разделен на две вкладки, а именно DefaultContactBrowseListFragment и ContactTileListFragment, которые можно переключать с помощью viewpager

Где DefaultContactBrowseListFragment — это страница списка контактов, в основном используемая для обработки отображения загрузки и поиска контактов в списке контактов, процесс загрузки данных описан выше, представление элемента списка — ContactListItemView

ContactTileListFragment является избранным контактом и общим контактом, этот класс напрямую наследуется от Fragment, но процесс в основном такой же, как и раньше, метод немного отличается, данные делятся на избранные контакты и последние контакты Контакты, через ContactTileLoaderFactory, чтобы обеспечить загрузчик курсора для загрузки различных данных

На дисплее пользовательского интерфейса адаптер используется для управления отображением частых и частых контактов, 3 строки и одна строка часто

В правом нижнем углу самого верхнего слоя основного интерфейса есть кнопка создания контакта, нажмите непосредственно для входа в интерфейс создания контакта.

В верхней части находится панель инструментов с кнопкой поиска и клавишей меню.

Основной интерфейс также отслеживает изменения данных поставщика

№3 Используем приложение Люди

Эта программа входит в состав последних версий Windows 10. Оно как раз предназначено для работы с контактами. А значит, может работать с файлами типа VCF. Если у вас стандартная версия системы, то даже не нужна никакая настройка. Вот что требуется.

1 Находим нужный файл на компьютере, кликаем по нему правой кнопкой мыши и в появившемся меню выбираем Открыть с помощью

2 В следующем меню просто выбираем Люди

3 Через несколько секунд файл откроется в приложении.

Вот так просто и легко можно открывать файлы такого типа в «десятке». Даже не нужно возиться с разнообразными программами.

Все, что требуется пользователю есть в составе операционной системы. Однако мы рассмотрим еще один способ.

Некоторые юзеры говорят, что такие файлы хорошо открываются при помощи встроенного инструмента Контакты Windows (Contacs). Но нам он не подходит, так как кириллицу данное приложение не поддерживает. В результате, вместо имен или русского текста вы увидите иероглифы (кракозябры).

Подробный интерфейс

В коде AndroidL нет предыдущих контактных данных в пакете сведений, оставлены только некоторые вспомогательные инструменты, а вместо ContactDetailActivity используется QuickContactActivity, а в пользовательском интерфейсе также происходят значительные изменения. , Интерфейс скользящий, внешний слой — это пользовательский вид: com.android.contacts.widget.MultiShrinkScroller. Если вы недавно связались с контактом, номер контакта будет указан сразу под номером контакта, Включая звонки и текстовые сообщения, а затем другую информацию. Если имеется несколько данных каждого типа, по умолчанию отображается одна из них. Она будет развернута при нажатии «Просмотреть все».
z

При входе из списка контактов он находится в полноэкранном режиме, а при входе из других каналов (в настоящее время известен по SMS и ярлыкам на рабочем столе) — не в полноэкранном состоянии, которое контролируется MultiShrinkScroller (runEntranceAnimation )

Загрузка данных аналогична процессу загрузки, описанному выше.

№5 Используем iCloud

Эту штуку можно найти только на компьютерах не только под управлением MacOS, но Windows. Программа iCloud – это своеобразное облако для хранения файлов и синхронизации. Однако открывать файлы типа VCF она тоже умеет. Нужно только знать, как это сделать.

1 Итак, сначала переходим на сайт и вводим данные Apple ID. Затем жмем «Enter»

2 Далее в нижней панели выбираем пункт «Контакты» (Contacts) и кликаем по нему.

3 Теперь жмем на иконку с шестеренкой в нижней части окна.

4 Затем из списка в меню выбираем «Импорт vCard» (Import vCard).

5 В проводнике выбираем файл с нужным именем.

6 Щелкаем по кнопке «Открыть» (Open).


После этого в отдельном окне откроется список сохраненных контактов, которые располагались в файле

Стоит заметить, что при таком способе открытия кириллица отображается нормально. С чтением проблем не возникнет никаких.

Редактировать интерфейс

Редактировать интерфейс В ContactEditorActivity-> ContactEditorFragment процесс загрузки данных в интерфейсе аналогичен описанному выше. Более сложным является пользовательский интерфейс интерфейса редактирования, который представляет собой пользовательский RawContactEditorView. И обязательная блок-схема

Фрагмент содержит пользовательский объект представления RawContactEditorView и объект данных RawContactDeltaList, после запроса данных Contact из базы данных данные инкапсулируются в RawContactDeltaList, а затем RawContactDeltaList через bindeditors, метод editor.setState Данные передаются в пользовательское представление, затем RawContactEditorView разделяет данные, а затем передает каждое подпредставление, а также передает RawContactDeltaList, и затем обновление данных будет завершено в подпредставлении, когда контакт должен быть сохранен во фрагменте. , Вы можете напрямую использовать RawContactDeltaList, операция сохранения контактов аналогична описанному выше процессу взаимодействия с данными.

Выберите интерфейс

Интерфейс Pick — это ContactSelectionActivity, который будет загружать разные фрагменты в соответствии с различными действиями, включая ContactPickerFragment.

PhoneNumberPickerFragment

EmailAddressPickerFragment

PostalAddressPickerFragment

JoinContactListFragment

Чаще всего используются первые 3 фрагмента

ContactSelectionActivity обычно запускается startActivityForResult, поэтому ему необходимо вернуть результат до его завершения.

Процесс загрузки данных пропущен.

Функция импорта и экспорта

Эта функция вызывается кнопкой меню на главном интерфейсе.

Импорт с SIM-карты

будет вызывать com.android.phone от Telephony. ADMList расширяет ADNList, отвечает за процесс загрузки данных, SimContacts — за обработку логики пользовательского интерфейса, все очень просто.

Импорт из хранилища

Импортировать файл vcard в ImportVCardActivity. Сначала он получает файл .vcf в пространстве хранения через VCardScanThread, а затем предлагает пользователю выбрать файл vcf для импорта и кэшировать данные через VCardCacheThread. Инкапсулируйте типы данных, необходимые для импорта данных. Конкретный процесс импорта выполняется через bind VCardService. В службе ExecutorService (инициализированный как однопоточный пул потоков) используется для выполнения потока ImportProcessor (реализует Runable). ImportProcessor выполняет специальный анализ и импорт. ImportProcessor Во время инициализации будет передан NotificationImportExportListener для выполнения обратного вызова интерфейса после завершения импорта.

Экспорт на карту памяти

Экспортирует контакты в файл vcf и сохраняет их в области хранения. Процесс экспорта аналогичен процессу импорта, а также выполняется с использованием VCardService.

Где лучше хранить контакты на Андроиде

Логичный вопрос, возникающий при таком разнообразии: где хранятся контакты в Android в памяти телефона? В проводнике есть соответствующая папка. В зависимости от модели гаджета, она называется «contacts» или «contacts2». Но важно учесть, что если с памятью телефона или самим смартфоном что-то случается, есть риск потерять важную информацию. Поэтому важно делать дополнительное резервное копирование.

Где находится корзина в телефоне Андроид Самсунг

Есть несколько приложений, которые помогут сохранить номера из книги на облако. Одно из наиболее функциональных — «Сохранить контакты». Для Андроида оно есть в Google Play, установить его возможно бесплатно. Однако установлен лимит на использование памяти. Есть платная подписка, она предоставляет больше возможностей.

В несколько кликов номера перемещаются в это приложение, и выгрузить их в текстовый документ формата Эксель, ОДС, ПДФ, архив и другие. Такие форматы читаются на всех современный гаджетах.

Программа «Сохранить контакты» позволяет восстановить номера телефонов из текстового файла. Она сохраняет номер, имя, почту. Софт имеет несложный интерфейс и приятный дизайн. Разработчики также позаботились о безопасности, поэтому утечки данных не произойдет.

На SIM-карте

Сюда поместить много номеров вы не сможете. В зависимости от того, насколько карта новая, на нее войдет от 20 до 200 записей. Но если вы потеряете телефон, восстановить номера получится только восстановив сим.

На телефоне

Во внутренней памяти куда больше места. Количество, которое туда помещается — минимум 1000 номеров, все зависит от объема памяти. Но если устройство будет сломано или утеряно, восстановить не получится.

Рейтинг
( 2 оценки, среднее 4.5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]