Раздел вопрос-ответ Как достать контакты из contacts2.db?

Как получить телефонные контакты из файла contacts2.db?

Как правило, на Android хранятся контакты в файле /data/data/com.android.providers.contacts/databases/contacts.db или на некоторых прошивках в файле contacts2.db .

Файл contacts2.db взят с телефона на базе android. Нужно достать все имена и телефоны из списка контактов.

share
 
не работает
– anonymous 8 лет назад
 
Можно в один клик при помощи онлайн-конфертера gsmrecovery.ru
– anonymous 9 лет назад

2 ответа

contacts.db или contacts2.db — это файл базы данных sqlite. Файл содержит в себе несколько десятков таблиц с информацией о группах, звонках, контактах, профилях, статусах и т.д. Т.е. все данные, которые имеются в телефоне android.

Откройте файл contacts2.db через любой sqlite-менеджер.

Просмотрим все доступные таблицы в БД contacts2.db:

SELECT name FROM sqlite_master WHERE type='table';
android_metadata
_sync_state
_sync_state_metadata
accounts
sqlite_sequence
contacts
raw_contacts
stream_items
stream_item_photos
photo_files
packages
mimetypes
data
phone_lookup
name_lookup
nickname_lookup
groups
agg_exceptions
settings
visible_contacts
default_directory
calls
voicemail_status
status_updates
properties
directories
dialer_search
data_usage_stat
v1_settings
sqlite_stat1
search_index
search_index_content
search_index_segments
search_index_segdir
search_index_docsize
search_index_stat

В таблице raw_contacts в поле display_name хранятся имена контактов (Ваня, Петя, Маша). Телефонные номера хранятся в phone_lookup.normalized_number

Связать 2 таблицы мы можем по полю contact_id.

phone_lookup
raw_contact_id | normalized_number
1 | +375291111111
2 | +375332222222
raw_contacts
contact_id | display_name
1 | Ваня
2 | Петя

Напишем sql-запрос для получения контактов и телефонных номеров:

SELECT display_name,normalized_number FROM raw_contacts INNER JOIN phone_lookup ON phone_lookup.raw_contact_id = raw_contacts.contact_id;
display_name | normalized_number
Ваня | +375291111111
Петя | +375332222222

Результат запроса с контактами и номерами телефонов можно экспортировать в csv-файл.

Получение списка контактов из contacts2.db


Аналогичным способом можно получить все SMS из файла mmssms.db:

/data/data/com.android.providers.telephony/databases/mmssms.db

Добавить комментарий
    как минимум 5 символов

    Можно в один клик при помощи онлайн-конвертера gsmrecovery.ru.

    Конвертирует из contacts2.db в vCard. 

    Добавить комментарий
      как минимум 5 символов

      icon Вход в систему

      зарегистрироваться
      НОВЫЕ ПОЛЬЗОВАТЕЛИ