Autore Topic: inviare mail  (Letto 861 volte)

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
inviare mail
« il: 19 Marzo 2012, 11:23:53 CET »
0
ho una domanda :-)
sulla mia applicazione ho messo un bottone che quando lo si preme ti manda la mail...
però ci sono 2 passi che vorrei eliminare se possibile...
ovvero
1) chiede quale client utilizzare per inviare la mail... c'e' un modo per saltarlo? o magari farlo visualizzare solo la prima volta e poi renderlo di default?
2) premere sul tasto invia... c'e' un modo per far si che la invii in automatico? tanto non devo scriverci nulla perchè è gia compilata

oppure c'e' 1 modo per saltare direttamente l'utilizzo dell'app? io attualmente uso gmail e ho impostato che gli passo un allegato che è l'unica cosa che mi serve :-)

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:inviare mail
« Risposta #1 il: 19 Marzo 2012, 13:04:36 CET »
0
Suppongo che tu lanci un intent con action ACTION_SEND, dopo avergli inserito gli extras relativi a oggetto, testo e così via. Il comportamento di default di Android in questo caso è proprio questo, ovvero presentarti una lista di apps che riescono a risolvere quell'intent implicito che tu hai lanciato. In questo senso bisogna ovviamente catchare l'ActivityNotFoundException che viene lanciata quando questa lista è vuota.
[EDIT] Il comportamento standard prevede anche che l'utente possa flaggare un "usa sempre questa app per risolvere questa azione" la prima volta.

Puoi risolvere la cosa lanciando un intent esplicito, ovvero che punti direttamente al client che decidi. Anche qui, attenzione a controllare che il client sia effettivamente installato.

In questo caso l'invio della mail è a carico di questa app terze parti. Ne deduco (ma potrei sbagliarmi) che a meno che questa app non esponga un modo per lanciare una mail senza "esser vista" la richiesta del punto 2 non sia fattibile utilizzando intent, impliciti od espliciti che siano.

Credo che si possa risolvere facendo in modo che la tua stessa app sia responsabile dell'invio della mail. Non ho idea di eventuali strutture del framework Android in tal senso, tuttavia googolando ho trovato qualcosa che credo possa essere utile:
Codice (Java): [Seleziona]
http://stackoverflow.com/questions/2020088/sending-email-in-android-using-javamail-api-without-using-the-default-android-a. L'idea dovrebbe essere quella di implementare l'invio mail, o come in questo caso utilizzare una libreria esterna da integrare nell'app.
« Ultima modifica: 19 Marzo 2012, 13:06:17 CET da DarnellNajanReed »