In quale parte del file system sono memorizzati i messaggi SMS?


56

Dove sono memorizzati i file SMS nel file system?

Sto usando ES File Explorer per navigare ma non riesco a trovarlo: è sul telefono o sulla SD e dove?

Ho un HTC Wildfire ma immagino che non varia enormemente da un venditore all'altro (anche se sono uno sviluppatore iOS che conosce poco Android).

Risposte:


43

Vedi qui: https://stackoverflow.com/questions/4809874/how-to-access-the-sms-storage-on-android

La sostanza è che SMS / MMS risiedono in database sul telefono e la risposta alla domanda contiene il collegamento a questo tutorial .

La posizione del database può variare da telefono a telefono, ma puoi cercarlo con questo comando tramite adb (devi trovarlo come root per trovarlo perché si trova nell'area di archiviazione protetta):

find / -name "*mmssms*"

Sul mio dispositivo (Samsung Galaxy S) sono stati visualizzati questi database:

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

Il primo è il db nativo e il secondo è dall'app sms che sto usando.


potresti spiegare come viene archiviato ... sembra XML? anche dov'è? - Non sto parlando da un punto di vista di programmazione in quanto non so nulla dello sviluppo di Android.
Alex Coplan,

3
È un database sqlite. Puoi guardarlo con un visualizzatore sqlite - quale sistema operativo usi?
joweiser,

E devi essere root per accedere al db - andando ad aggiungerlo alla risposta sopra.
joweiser,

Ecco un visualizzatore sqlite indipendente dalla piattaforma se vuoi guardare quei file: http://sourceforge.net/projects/sqlitebrowser/
joweiser

2
@masterjo: SQLite Database Browser non è stato sviluppato dal 2009 e non è stato in grado di mostrare nulla dal file .db quando l'ho provato oggi. Ecco un altro browser SQLite che ha funzionato: sqlitestudio.one.pl
Dan Dascalescu,

10

Ecco anche un'informazione utile.

Questo è il percorso assoluto per SMS e MMS DB sulla maggior parte dei dispositivi Android:

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


Questo dovrebbe effettivamente essere rinominato /data/data/com.android.providers.telephony/databases/mmssms.db. Notare la .telephony
smac89 del

Su kitkatdevice/data/data/com.android.providers.telephony/databases/m‌​mssms.db
JinSnow l'

9

Si noti che, a partire da Kitkat (Android 4.4, rilasciato a settembre 2013), il percorso predefinito è cambiato da:

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

per

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

Aggiornamento: come menzionato nei commenti, quest'ultimo percorso esiste già in JB.


Le modifiche devono essere state introdotte molto prima che KitKat fosse lanciato poiché /data/data/com.android.providers.telephony/databases/mmssms.dbesiste nel mio JB.
Firelord

Bene, JB è una versione prima di KK. Quindi, "molto prima" potrebbe essere un po 'esagerato. ;-)
eyecatchUp

8

Sembra che sia passato a data/User_DE/0/com.android.providers.telephony/databasesNougat.

Almeno, è qui che può essere trovato sul mio Nexus 6. Spero che questo aiuti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.