Autore Topic: Invio db sqlite con intent, il file ha sempre zero bit  (Letto 826 volte)

Offline matteo.pizzorni

  • Utente junior
  • **
  • Post: 65
  • Respect: +2
    • Mostra profilo
Invio db sqlite con intent, il file ha sempre zero bit
« il: 08 Luglio 2012, 11:25:50 CEST »
0
Ciao,
sto tentando di inviare un db sqlite creato dalla mia applicazione con un intent. Premesso che il db viene creato nella solita cartella data\data\etc.. con l'adapter, utilizzo il seguente codice
Codice (XML): [Seleziona]
                Intent sendIntent = new Intent(Intent.ACTION_SEND);
                sendIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.app_name) + " " + getString(R.string.st_Allenamento));
                sendIntent.putExtra(Intent.EXTRA_TEXT, getString(R.string.st_MailInvioAllenamento));
                sendIntent.setType("application/octet-stream");
                Uri uriExportDb = Uri.fromFile(getDatabasePath(db.getPath()));
                dbExport.close();
                WoExportHelper.close();
                sendIntent.putExtra(Intent.EXTRA_STREAM, uriExportDb);
                startActivity(Intent.createChooser(sendIntent, getString(R.string.st_0000)));

Non riesco veramente a capire dove sbaglio, l'uri aggancia correttamente il file, si apre la mail col nome file corretto in attach ma il file è vuoto...
Grazie

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Invio db sqlite con intent, il file ha sempre zero bit
« Risposta #1 il: 08 Luglio 2012, 12:42:55 CEST »
0
Non ho provato il codice ma ti posso dire che i file dei database (e altri sotto /data/data/<package>)  sono leggibili solo dall'applicazione che gli ha creati o dall'utente root.
adb logcat | tee /tmp/logcat | grep TAG

Offline matteo.pizzorni

  • Utente junior
  • **
  • Post: 65
  • Respect: +2
    • Mostra profilo
Re:Invio db sqlite con intent, il file ha sempre zero bit
« Risposta #2 il: 08 Luglio 2012, 13:44:25 CEST »
0
Ok. Ci può stare... Quindi devo copiarlo su se poi inviarlo da lì?

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Invio db sqlite con intent, il file ha sempre zero bit
« Risposta #3 il: 08 Luglio 2012, 15:44:02 CEST »
0
Prova a copiarlo in una directory leggibile a tutti gli applicativi, tipo "/data/local/tmp" se presente e scrivibile o quella della SD esterna con  l'autorizzazione. I dati del database copiato sono poi accessibili a tutti, quindi non sono protetti da accessi non autorizzati.
adb logcat | tee /tmp/logcat | grep TAG

Offline matteo.pizzorni

  • Utente junior
  • **
  • Post: 65
  • Respect: +2
    • Mostra profilo
Re:Invio db sqlite con intent, il file ha sempre zero bit
« Risposta #4 il: 11 Luglio 2012, 13:17:13 CEST »
0
Ok, ho risolto in effetti copiando su sd e poi allegnado il file alla mail tutto funziona!!
grazie!!1