2014-10-06 65 views
5

Attualmente sto sviluppando un'applicazione Android che utilizza il database SQLite. Sto cercando idee su come eseguire il backup/ripristino del database da e verso servizi esterni come Dropbox. Ho passato con alcune spiegazioni come di seguito:Come eseguire il backup/ripristino del database SQLite su Android su Dropbox

Android backup/restore: how to backup an internal database?

Backup/restore sqlite db in android

Queste spiegazioni sono principalmente sul backup a livello locale, ma voglio fare il backup al cloud, come ho detto, qualcosa di simile a Dropbox.

Help please ... Grazie in anticipo ...

risposta

4

Utilizzando la risposta here, è possibile ottenere un riferimento al database sotto forma di un db File oggetto.

final String inFileName = "/data/data/<your.app.package>/databases/foo.db"; 
File dbFile = new File(inFileName); 

Una volta fatto questo, è di facile lettura/scrittura a Dropbox di un utente utilizzando il Dropbox Sync API.

  • Backup: Usa writeFromExistingFile() a scrivere questo locale File alla directory Dropbox
  • Restore: Usa getReadStream() per ottenere un FileInputStream in grado di scrivere il percorso locale appropriato in cui il file .db va.
+0

grazie per la risposta diretta! ma ciò significa anche che devo salvare le informazioni di accesso a Dropbox in sharedpreferences? se lo faccio, Android di root sarà in grado di visualizzare le informazioni. posso applicare la crittografia senza compromettere il processo di backup/ripristino? –

+0

Autenticare gli utenti per utilizzare l'app utilizzando [startLink] (https://www.dropbox.com/developers/sync/docs/android#com.dropbox.sync.android.DbxAccountManager.startLink). Nessuna informazione di accesso viene salvata da te, l'SDK Dropbox gestisce l'accesso per te. In generale non esiste una soluzione sicura per i telefoni rooted. La crittografia dei dati è inutile perché su un telefono rooted chiunque può trovare la chiave di decodifica. – Nachi

+0

grazie! risolto i miei risultati ... –

Problemi correlati