2009-07-09 22 views
43

Ho creato un database SQLite su dispositivo Android. Il programma può leggere/scrivere sul database in modo che il file del database sia stato ovviamente creato. Lo SQLiteDatabase.mPath è impostato suAndroid: dove sono memorizzati i file di database?

db.mPath = "/data/data/dev.client.android/databases/clientDB.db" 

ma quando navigo le directory sul dispositivo non può individuare il file clientDB.db. Ho guardato all'interno della directory dei dati ma sembra essere vuoto.

Qualcuno sa cosa potrebbe esserci di sbagliato qui?

risposta

28

Se intendi che hai visitato /data e non hai trovato nulla e stai esaminando un normale componente hardware Android, è previsto. DDMS non ha il permesso di navigare attraverso /data.

Tuttavia, almeno se l'app è stata compilata in modalità di debug, è possibile utilizzare il comando adb pull nella console per scaricare direttamente il file.

+0

Nel file manager del mio dispositivo ho cercato 'filename.sqlite' ma non ho ottenuto alcun risultato? Puoi dire perché? –

+0

@VivekWarde: non è possibile esplorare la memoria interna su un dispositivo di produzione. – CommonsWare

+0

quindi dove posso vedere il mio database sqlite diverso dalla cartella delle risorse –

6

In modalità di debug è possibile utilizzare adb shell e sfogliare il contenuto della directory. Nella shell è possibile chiamare sqlite3 /data/data/dev.client.android/databases/clientDB.db per analizzare il DB.

+0

Ho provato a digitare questo nella scheda Terminale di Android Studio mentre l'applicazione era in fase di debug ma non riconosceva il comando. La directory dell'app sul mio computer era il percorso nella console. È dove dovrei inserirlo? –

33

provare getDatabasePath su ContextWrapper (http://developer.android.com/reference/android/content/ContextWrapper.html). Se ci si trova in un'attività o di applicazione della classe prova:

File dbFile = getDatabasePath(MY_DB_NAME); 
Log.i(dbFile.getAbsolutePath()); 

Proprio assumendo la sua in /data/data/my.package.name/databases/ è male in quanto non v'è alcuna garanzia che i dati non è stato spostato sulla scheda SD o il dispositivo/sistema operativo ha appena deciso su un diversa directory di dati.

Problemi correlati