Questo suggerimento rapido mostra come avviare l'applicazione di posta elettronica incorporata, fornirla con i dati e consentire all'utente di inviare un messaggio di posta elettronica. Otterrai ciò creando e configurando l'Intento appropriato all'interno dell'attività di un'applicazione.
Inizia creando un progetto Android. Implementa la tua applicazione Android normalmente. Dopo aver configurato un progetto e avviato l'applicazione, decidere in quali circostanze si desidera avviare un'applicazione di posta elettronica e inviare un messaggio di posta elettronica. Ciò si verificherà quando viene premuto un controllo Button? Vuoi inserire i dettagli dell'email o semplicemente consentire all'utente di farlo? Implementa il controllo Pulsante o menu necessario, inclusa la gestione dei clic. Una volta completata questa attività, hai un posto dove inserire il codice per avviare il client di posta.
Se si utilizza un emulatore, è necessario configurare il client di posta elettronica. Se il client di posta elettronica non è configurato, non risponderà all'intento di cui parleremo. Se vuoi vedere il selettore in azione, devi configurare un dispositivo utilizzando più applicazioni di messaggistica, come l'applicazione Gmail e l'applicazione Email.
Ora sei pronto per procedere con questo suggerimento rapido.
Puoi anche iniziare con il codice open source fornito per questo suggerimento rapido.
Le applicazioni di posta possono essere lanciate per inviare un messaggio con il seguente intento: android.content.Intent.ACTION_SEND. Inizia creando un Intento di questo tipo, come indicato di seguito, all'interno del gestore di clic Button:
Intent emailIntent = new Intent (android.content.Intent.ACTION_SEND);
Questo è un tipo di Intent molto generico. Fondamentalmente, dice al sistema Android che l'applicazione vuole inviare qualche tipo di messaggio da qualche parte: l'intento ACTION_SEND può essere utilizzato per inviare diversi tipi di messaggi inclusi messaggi e-mail, messaggi di testo (SMS), messaggi con disegno (MMS), ecc. , è necessario aggiungere alcune informazioni di configurazione aggiuntive all'intento affinché il sistema operativo Android corrisponda correttamente alla richiesta all'applicazione appropriata.
Ad esempio, se hai intenzione di inviare dati di testo, devi impostare il tipo di Intento usando il metodo setType () come segue:
emailIntent.setType ( "plain / text");
Su un dispositivo tipico, l'applicazione di messaggistica e l'applicazione di posta gestiscono generalmente l'invio di messaggi di testo normale.
Quando si avvia questa intenzione, tutte le applicazioni che supportano la messaggistica in chiaro saranno in grado di gestire questa richiesta. Dopo aver impostato i dati del tipo per l'intento, puoi chiamare il metodo startActivity (), passando il tuo intento:
startActivity (emailIntent);
Gli utenti possono installare qualsiasi numero di applicazioni Android sui propri dispositivi. Spesso installano più applicazioni di messaggistica. Ad esempio, potrebbero avere client e-mail personali separati e applicazioni client e-mail di lavoro. È possibile consentire all'utente di scegliere quale applicazione gestire l'intenzione fornendo la chiamata startActivity () con il metodo createChooser ():
startActivity (Intent.createChooser (emailIntent, "Invia la tua email in:"));
Questo richiederà all'utente tutte le applicazioni che dispongono di un filtro di intent che corrisponde alla tua richiesta ACTION_SEND di testo normale. L'utente può scegliere un'applicazione specifica da avviare.
Nota: se esiste una sola scelta disponibile, quella scelta verrà avviata direttamente. Se ci sono zero scelte disponibili, la finestra di dialogo mostra ma dice all'utente che non ci sono scelte. Se ci sono due o più scelte, all'utente viene data la scelta mentre non gli viene data la possibilità di fare una scelta predefinita poiché il selettore viene forzato.
Spesso, si desidera fornire alcuni dei campi dei messaggi di posta elettronica con i dati al fine di salvare alcuni tipi di digitazione dell'utente. Ad esempio, è possibile impostare l'elenco dei destinatari e-mail, l'oggetto del messaggio o il corpo del messaggio. Puoi farlo fornendo queste informazioni come parte degli extra dell'Intent.
Il codice seguente crea l'intenzione, configura gli extra e avvia la nuova attività:
Intent emailIntent = new Intent (android.content.Intent.ACTION_SEND); String aEmailList [] = "[email protected]", "[email protected]"; String aEmailCCList [] = "[email protected]", "[email protected]"; String aEmailBCCList [] = "[email protected]"; emailIntent.putExtra (android.content.Intent.EXTRA_EMAIL, aEmailList); emailIntent.putExtra (android.content.Intent.EXTRA_CC, aEmailCCList); emailIntent.putExtra (android.content.Intent.EXTRA_BCC, aEmailBCCList); emailIntent.putExtra (android.content.Intent.EXTRA_SUBJECT, "My subject"); emailIntent.setType ( "plain / text"); emailIntent.putExtra (android.content.Intent.EXTRA_TEXT, "Il mio corpo del messaggio."); startActivity (emailIntent);
Ora, se si avvia l'intento ACTION_SEND, i campi vengono compilati per l'utente.
Una nota sulle autorizzazioni: Sebbene l'applicazione sfrutti le funzionalità di messaggistica sul dispositivo, non è necessario disporre di tali autorizzazioni. Questo perché l'applicazione non invia direttamente i messaggi. Invece, è solo sfruttando le capacità di altre applicazioni per farlo.
In questo suggerimento veloce hai imparato come configurare un intent per lanciare e inviare un messaggio email. L'utente ha ancora il controllo finale se inviare o meno il messaggio. Tuttavia, questa funzione può essere molto utile per le applicazioni che desiderano includere funzionalità di feedback utente semplici o per integrarsi strettamente con il client di posta elettronica preferito dell'utente.
Gli sviluppatori mobili Lauren Darcey e Shane Conder hanno coautore diversi libri sullo sviluppo di Android: un libro di programmazione approfondito intitolato Sviluppo di applicazioni wireless Android e Sams TeachYourself Sviluppo di applicazioni Android in 24 ore. Quando non scrivono, passano il loro tempo a sviluppare software mobile presso la loro azienda ea fornire servizi di consulenza. Possono essere contattati via email a [email protected], tramite il loro blog su androidbook.blogspot.com e su Twitter @androidwireless.