Sugerencia rápida permitir que los usuarios envíen correos electrónicos desde sus aplicaciones de Android la manera fácil

Esta sugerencia rápida le muestra cómo iniciar la aplicación de correo integrada, proporcionarle datos y permitir que el usuario envíe un mensaje de correo electrónico. Para lograrlo, crea y configura la Intención adecuada dentro de la Actividad de una aplicación..

Paso 1: Crea una aplicación para Android

Comienza por crear un proyecto de Android. Implementa tu aplicación de Android de la forma habitual. Una vez que tenga un proyecto configurado y la aplicación en ejecución, decida bajo qué circunstancias desea iniciar una aplicación de correo electrónico y envíe un correo electrónico. ¿Ocurrirá esto cuando se presiona un control de botón? ¿Desea completar los detalles del correo electrónico o simplemente permitir que el usuario lo haga? Implemente el control de menú o botón necesario, incluido el manejo de cualquier clic. Una vez que haya completado esta tarea, tiene un lugar donde colocar el código para iniciar el cliente de correo.

Si está utilizando un emulador, deberá configurar el cliente de correo electrónico. Si el cliente de correo electrónico no está configurado, no responderá a la Intención que discutiremos. Si desea ver el selector en acción, deberá configurar un dispositivo utilizando múltiples aplicaciones de mensajería, como la aplicación Gmail y la aplicación de correo electrónico..

Ahora estás listo para continuar con este rápido consejo..

También puede comenzar con el código fuente abierto que se proporciona para este consejo rápido..

Paso 2: Creando la intención

Las aplicaciones de correo pueden iniciarse para enviar un mensaje con la siguiente intención: android.content.Intent.ACTION_SEND. Comience creando un Intent de este tipo, de la siguiente manera, dentro de su controlador de clic de botón:

 Intención emailIntent = new Intent (android.content.Intent.ACTION_SEND); 

Paso 3: Configuración del tipo de intención

Este es un tipo de intento muy genérico. Básicamente, le dice al sistema Android que su aplicación quiere enviar algún tipo de mensaje a algún lugar: el Intento ACTION_SEND se puede usar para enviar diferentes tipos de mensajes, incluidos mensajes de correo electrónico, mensajes de texto (SMS), mensajes de imagen (MMS), etc. , debe agregar alguna información de configuración adicional a la Intención para que el sistema operativo Android coincida correctamente con su solicitud con la aplicación adecuada.

Por ejemplo, si planea enviar datos de texto, debe configurar el tipo de Intención utilizando el método setType () de la siguiente manera:

 emailIntent.setType ("plain / text"); 

En un dispositivo típico, la aplicación de Mensajería y la aplicación de Correo generalmente manejan el envío de mensajes de texto sin formato.

Paso 4: Lanzar la intención

Cuando inicie esta Intención, cualquier aplicación que admita mensajes de texto sin formato podrá manejar esta solicitud. Una vez que haya configurado los datos de tipo para la Intención, puede llamar al método startActivity (), pasando su Intención:

 startActivity (emailIntent); 

Paso 5: Manejo cuando múltiples aplicaciones pueden enviar correo

Los usuarios pueden instalar cualquier número de aplicaciones de Android en sus dispositivos. A menudo, instalan múltiples aplicaciones de mensajería. Por ejemplo, pueden tener aplicaciones de cliente de correo electrónico personal y de cliente de correo electrónico de trabajo separadas. Puede permitir que el usuario elija qué aplicación controlará el Intent proporcionando la llamada startActivity () con el método createChooser ():

 startActivity (Intent.createChooser (emailIntent, "Envíe su correo electrónico a:")); 

Esto le pedirá al usuario que todas las aplicaciones que tienen un filtro de intento configurado que coincida con su solicitud de texto simple ACTION_SEND. El usuario puede elegir una aplicación específica para lanzar.

Nota: Si hay exactamente una opción disponible, esa opción se lanzará directamente. Si hay cero opciones disponibles, el cuadro de diálogo muestra pero le dice al usuario que no hay opciones. Si hay dos o más opciones, al usuario se le da la opción mientras que no se le da la opción de hacer una opción predeterminada ya que el selector está siendo forzado.

Paso 6: Suministro de contenido del mensaje

A menudo, usted quiere suministrar algunos de los campos de mensajes de correo electrónico con datos para ahorrarle al usuario algo de escritura. Por ejemplo, es posible que desee establecer la lista de destinatarios de correo electrónico, el asunto del mensaje o el cuerpo del mensaje. Puede hacer esto proporcionando esta información como parte de los extras del Intent.

El siguiente código crea la Intención, configura los extras e inicia la nueva Actividad:

 Intención 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, "Mi tema"); emailIntent.setType ("plain / text"); emailIntent.putExtra (android.content.Intent.EXTRA_TEXT, "My message body."); startActivity (emailIntent); 

Ahora, si inicia el intento ACTION_SEND, los campos se completan para el usuario.

Una nota sobre los permisos: Aunque su aplicación está aprovechando las capacidades de mensajería en el dispositivo, no se requiere que tenga tales permisos. Esto se debe a que la aplicación no está enviando mensajes directamente. En su lugar, solo está aprovechando las capacidades de otras aplicaciones para hacerlo..

Conclusión

En este rápido consejo, ha aprendido cómo configurar un Intent para iniciar y enviar un mensaje de correo electrónico. El usuario todavía tiene el control final sobre si enviar o no el mensaje. Sin embargo, esta característica puede ser muy útil para aplicaciones que deseen incluir una funcionalidad simple de comentarios de usuarios o para integrarse estrechamente con el cliente de correo electrónico preferido del usuario.

Sobre los autores

Los desarrolladores de dispositivos móviles Lauren Darcey y Shane Conder han sido coautores de varios libros sobre el desarrollo de Android: un libro de programación en profundidad titulado Desarrollo de aplicaciones inalámbricas para Android y Sams TeachYourself Desarrollo de aplicaciones para Android en 24 horas. Cuando no están escribiendo, pasan su tiempo desarrollando software móvil en su empresa y brindando servicios de consultoría. Puede comunicarse con ellos por correo electrónico a [email protected], a través de su blog en androidbook.blogspot.com, y en Twitter @androidwireless.

¿Necesitas más ayuda para escribir aplicaciones de Android? Vea nuestros últimos libros y recursos!