Autore Topic: Invio di più allegati via email...  (Letto 1605 volte)

Offline BobArctor

  • Nuovo arrivato
  • *
  • Post: 36
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    HTC Hero, Galaxy S4, GP50
  • Play Store ID:
    Michele Valentini
  • Sistema operativo:
    Windows 8
Invio di più allegati via email...
« il: 13 Aprile 2010, 11:28:38 CEST »
0
ciao ragazzi... sto cercando di far inviare alcuni files tramite la mia applicazione...
con questo metodo riesco ad inviarne uno...
Codice: [Seleziona]
                Uri backup = Uri.parse("file://" + Main.DIRECTORY + filename);
                Intent sendIntent = new Intent(Intent.ACTION_SEND);
                sendIntent.setType("application/xml");
                sendIntent.putExtra(Intent.EXTRA_SUBJECT, getResources().getString(
                                R.string.email_subject));
                sendIntent.putExtra(Intent.EXTRA_STREAM, backup);
                sendIntent.putExtra(Intent.EXTRA_TEXT, getResources().getString(
                                R.string.email_body));
                startActivity(Intent.createChooser(sendIntent, "Email:"));
dato che putExtra ha molti override, tra cui quello che accetta un'array di Uri ho pensato di fare così:
Codice: [Seleziona]
                Uri backup = Uri.parse("file://" + Main.DIRECTORY + filename);
                Uri style = Uri.parse("file://"+Main.DIRECTORY+Main.STYLE);
                Uri[] attachments = new Uri[]{backup,style};
                Intent sendIntent = new Intent(Intent.ACTION_SEND);
                sendIntent.setType("application/xml");
                // sendIntent.putExtra(Intent.EXTRA_EMAIL, "me@gmail.com");
                sendIntent.putExtra(Intent.EXTRA_SUBJECT, getResources().getString(
                                R.string.email_subject));
                sendIntent.putExtra(Intent.EXTRA_STREAM, attachments);
                sendIntent.putExtra(Intent.EXTRA_TEXT, getResources().getString(
                                R.string.email_body));
                startActivity(Intent.createChooser(sendIntent, "Email:"));
ma niente... non c'è verso di inviarne due. come posso fare?
con uno funziona senza problemi!
se invece richiamo il metodo putExtra(Intent.EXTRA_STREAM,allegato2) dopo averlo chiamato per il primo allegato, naturalmente ottengo solo il secondo allegato.

grazie a tutti!

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Invio di più allegati via email...
« Risposta #1 il: 15 Aprile 2010, 01:03:43 CEST »
0
Ciao BobArctor,
sono ore che ci sbatto la testa ma non sono riuscito ad inviare più di un allegato.

Sulla rete è pieno di programmatori che pongono la tua stessa domanda, ma nessuno ha ancora trovato una soluzione.

Ho spulciato anche diversi progetti su google code search, compreso k9mail, ma non sono riuscito a capire come cavolo aggiungere più di un allegato all'intent.

Alcuni dicono che si debba usare ACTION_SEND_MULTIPLE al posto di ACTION_SEND. Ho provato ed effettivamente non va in FC, ma rimane comunque bloccato (non apre il client di posta).

Il codice che ho utilizzato è questo:
Codice (Java): [Seleziona]
                Uri backup = Uri.parse("file:///sdcard/1.txt");
                Uri style = Uri.parse("file:///sdcard/2.txt");
                ArrayList<Parcelable> attachments = new ArrayList<Parcelable>();
                attachments.add(backup);
                attachments.add(style);
                Intent sendIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
                sendIntent.setType("text/plain");
                sendIntent.putExtra(Intent.EXTRA_SUBJECT, "email_subject");
                sendIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, attachments);
                sendIntent.putExtra(Intent.EXTRA_TEXT, "email_body");
                startActivity(Intent.createChooser(sendIntent, "Email:"));

Prova a dare anche tu uno sguardo qui: http://blog.blackmoonit.com/2010/02/filebrowser-send-receive-intents.html

Se trovi una soluzione facci sapere.

PS
Un ugly workaround consiste nello zippare tutti i files da allegare e inviare il solo archivio compresso.
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline BobArctor

  • Nuovo arrivato
  • *
  • Post: 36
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    HTC Hero, Galaxy S4, GP50
  • Play Store ID:
    Michele Valentini
  • Sistema operativo:
    Windows 8
Re: Invio di più allegati via email...
« Risposta #2 il: 16 Aprile 2010, 11:11:06 CEST »
0
grazie!
allora, più tardi proverò con quel intent che mi hai indicato, ma mi sembra sia disponibile dalla versione 1.6, o sbaglio? io stavo utilizzando la 1.5, per avere un utilizzo anche sul mio hero... in caso zippo il tutto, tanto le librerie sono incluse nell'sdk!
grazie ancora,
Michele

Sent from my HTC Hero using Tapatalk

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Invio di più allegati via email...
« Risposta #3 il: 16 Aprile 2010, 11:55:05 CEST »
0
Ciao Michele,
sì è stato introdotto con la 1.6. Ma temo che per ora l'unica soluzione sia zippare tutti gli allegati in un unico archivio...
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Invio di più allegati via email...
« Risposta #4 il: 17 Febbraio 2011, 00:38:20 CET »
0
Allora, con questo snippet è possibile inviare email con più allegati, ma sembra non funzionare su Android 1.6 (testato su ADP1), mentre funziona correttamente su Android 2.3:
Inviare un'email CON PIÙ ALLEGATI tramite Intent - Android Developers Italia
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !