Originariamente inviato da
genty
Ciao,
ma se volessi farmi inviare il database (data/data/mia applicazione/databases/db) da un device come posso fare?
Devo tipo salvarlo via codice sulla scheda sd (avete qualche esempio?) o ci sono altre alternative?
Grazie
Ciao,
prima di tutto salvi il db dalla nand alla sdcard:
codice:
InputStream dataDB = new FileInputStream("/data/data/tuaapplicazione/tuodatabase");
OutputStream dbOut = new FileOutputStream(Environment.getExternalStorageDirectory() + File.separator + "eventualeDirectory" + File.separator + "sqlite.s3db");
byte[] buffer = new byte[1024];
int length;
while ((length = dataDB.read(buffer))>0){
dbOut.write(buffer, 0, length);
}
dbOut.flush();
dbOut.close();
//***
dopodichè, ad esempio, puoi preparare un invio email con indirizzo email, oggetto, corpo email e allegato (il db sqlite) già definiti, con i soliti intent predefiniti:
codice:
Calendar c = Calendar.getInstance();
data = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss a");
dataFormattata = data.format(c.getTime());
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"tuoindirizzoemail@tuoserver.it"});
intent.putExtra(Intent.EXTRA_SUBJECT, "Invio automatico SQLITE da Device Android IMEI: " + ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId());
intent.putExtra(Intent.EXTRA_TEXT, "Questa email è stata inviata dal terminale - IMEI: " + ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId() +
"- il " + dataFormattata +
" e contiene in allegato: " + "\n" +
"il backup del database sqlite attuale" + "\n");
intent.setType("application/zip");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + Environment.getExternalStorageDirectory() + File.separator + "eventualeDirectory" + File.separator + "sqlite.s3db"));
startActivity(Intent.createChooser(intent, "Scegli come inviare l'email:"));