2010-04-29 11 views
30

Estoy diseñando una aplicación en la que necesito abrir un cliente de correo electrónico al hacer clic en un botón. El cliente de correo electrónico debe abrirse con un asunto predefinido y una dirección 'a'. ¿Hay alguna manera de lograr esto? Por favor me proporcione la solución y un ejemplo de código si es posible ...Abrir un cliente de correo electrónico al hacer clic en un botón

+0

Posible duplicado de [Cómo abrir el programa de correo electrónico a través de Intents (pero solo un programa de correo electrónico)] (http://stackoverflow.com/questions/3312438/how-to-open-email-program-via-intents-but -un-solo-un-programa-de-correo electrónico) – mixel

Respuesta

62

es la siguiente:

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType("plain/text"); 
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "[email protected]" }); 
intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); 
intent.putExtra(Intent.EXTRA_TEXT, "mail body"); 
startActivity(Intent.createChooser(intent, "")); 

Como alternativa, se puede usar IntentFactory.getSendEmailIntent(String mailTo, String mailCC, String subject, CharSequence body, File attachment).

+1

Cuando hago clic en el botón se visualiza que NO HAY APLICACIONES QUE PUEDAN REALIZAR ESTA ACCIÓN ... ¿Cuál es la solución? –

+0

Esto solo funcionará en un dispositivo real. – yanchenko

+0

¿Hay alguna otra forma de abrir un cliente de correo electrónico en mi emulador ... ???? –

0

Puede abrir el cliente de correo electrónico en el emulador configurando su dirección de correo electrónico con el correo electrónico inbuild con el correo electrónico. Luego, cuando llame al intento, se abrirá y enviará un correo.

9

Para mostrar sólo los clientes de correo electrónico utilizan este código:

Intent intent = new Intent(Intent.ACTION_VIEW); 
Uri data = Uri.parse("mailto:[email protected]?subject=" + subject + "&body=" + body); 
intent.setData(data); 
startActivity(intent); 

Si ya eligió cliente de correo electrónico predeterminado y luego se pondrá en marcha la misma. De lo contrario, mostrará una lista de clientes de correo electrónico disponibles.

+0

esto funciona perfectamente ... estoy sorprendido de por qué funcionó sin permisos? – anshulkatta

+0

@anshulkatta Porque no realiza ninguna acción que requiera permisos. Simplemente abre una actividad que puede enviar correos electrónicos. – mixel

Cuestiones relacionadas