Где в файловой системе хранятся SMS-сообщения?

Где в файловой системе хранятся SMS-сообщения?

Я использую ES File Explorer для просмотра, но не могу найти это - это на телефоне или на SD и где?

У меня есть HTC Wildfire, но я полагаю, что он не сильно отличается от поставщика к поставщику (хотя я разработчик iOS, который мало знает об Android).

Ответы (4)

Смотрите здесь: https://stackoverflow.com/questions/4809874/how-to-access-the-sms-storage-on-android

Суть в том, что SMS/MMS находятся в базах данных на телефоне, и ответ на вопрос содержит ссылку на это руководство .

Расположение базы данных может варьироваться от телефона к телефону, но вы можете найти его с помощью этой команды через adb (вам нужно быть root, чтобы найти ее, потому что она находится в защищенном хранилище):

find / -name "*mmssms*"

На моем устройстве (Samsung Galaxy S) оказались такие базы:

./dbdata/databases/com.android.providers.telephony/mmssms.db
./data/data/com.jb.gosms/databases/gommssms.db

Первый из них — родной БД, а второй — приложение для смс, которое я использую.

не могли бы вы объяснить, как он хранится... он выглядит как XML? тоже где? - Я не говорю с точки зрения кодирования, так как ничего не знаю о разработке для Android.
Это база данных sqlite. Вы можете посмотреть его с помощью sqlite viewer - какую операционную систему вы используете?
И вы должны быть пользователем root для доступа к БД — добавим это к ответу выше.
Вот независимая от платформы программа просмотра sqlite, если вы хотите просмотреть эти файлы: http://sourceforge.net/projects/sqlitebrowser/
Большое спасибо за этот ответ! У меня была какая-то странная проблема, когда отправка SMS на контакт отправляла их другим контактам. Мне пришлось отредактировать запись canonical_addressesв mmssms.db. Теперь снова работает как надо.
@masterjo: Браузер базы данных SQLite не разрабатывался с 2009 года, и он не мог ничего показать из файла .db, когда я попробовал его сегодня. Вот еще один браузер SQLite, который работал — sqlitestudio.one.pl
На киткат:device/data/data/com.android.providers.telephony/databases/mmssms.db
Я нашел свой в `device\data\data\com.android.messaging\databases` на Android Oreo.

Вот тоже полезная информация.

Это абсолютный путь к базе данных SMS и MMS на большинстве устройств Android:

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

На самом деле это должно быть переименовано в /data/data/com.android.providers.telephony/databases/mmssms.db. Обратите внимание на .телефонию
На киткатdevice/data/data/com.android.providers.telephony/databases/m‌​mssms.db

Похоже, он перешел на data/User_DE/0/com.android.providers.telephony/databasesNougat.

По крайней мере, здесь его можно найти на моем Nexus 6. Надеюсь, это поможет.

Я также обнаружил, что это место на Android 11. Обратите внимание, что user_deэто строчные буквы, а не заглавные буквы, как вы написали .

Обратите внимание, что начиная с Kitkat (Android 4.4, выпущенный в сентябре 2013 г.) путь по умолчанию изменился с:

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

к

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

Обновление: как упоминалось в комментариях, последний путь уже существует в JB.

Изменения должны были быть внесены задолго до того, как KitKat был запущен, так как он /data/data/com.android.providers.telephony/databases/mmssms.dbсуществует в моем JB.
Ну, JB на один релиз раньше KK. Так что "намного раньше" может быть немного преувеличено. ;-)