Los vínculos HTML desaparecen del correo electrónico generado por Intent (Android 4.1 o posterior)
Estoy enfrentando un problema que ocurre en dispositivos con Android 4.1 o superior. Quiero enviar un correo electrónico (vía Intent
) que contiene enlaces html. Sé que esto funciona en dispositivos android 2.x porque hice esto durante meses.
Aquí está el código java:
- Pasar los datos de referencia a través de la intención de cromo de google play
- Cómo llamar a una actividad de aplicación de un proyecto de biblioteca en Android
- Android Geofencing - No intentos próximos?
- Cómo tomar una foto, guardarla y obtener la foto en Android
- Android: Pasar variables a un servicio ya en ejecución
startActivity(Intent.createChooser( new Intent(Intent.ACTION_SEND) .putExtra(Intent.EXTRA_SUBJECT, "A subject") .setType("text/html") .putExtra(Intent.EXTRA_TEXT, Html.fromHtml("Some text ... <a href="http://www.weburl.com">Some text</a>)), "Email"));
En Android 4.1: Cuando uso este código, Gmail muestra el texto como se esperaba y veo los enlaces en azul y subrayado. Pero recibo este mensaje sin los enlaces.
En Android 2.x: Todo es perfecto. Recibo el correo electrónico con los enlaces
¿Puede alguien ayudarme a resolver este problema?
- OnActivityResult para PendingIntent
- Excepción de puntero nulo en la intención de la cámara cuando elijo una cámara de terceros
- Android nfc intent-filter para mostrar mi aplicación cuando nfc descubre una etiqueta
- Android reproduciendo música en fondo
- Android - ¿Cómo activar un Broadcast Receiver para llamar a su método onReceive ()?
- Android Parcelable y Serializable
- Cómo verificar IntentService start
- Android Ble desconexión de tiempo
Creo que las aplicaciones de correo electrónico no tienen soporte html completo. Tengo el siguiente código:
Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto","", null)) .putExtra(Intent.EXTRA_SUBJECT, "LIJSTJE fb") .putExtra(Intent.EXTRA_TEXT, Html.fromHtml(new StringBuilder() .append("<p style='font-weight:bold;'>Some Content</p>") .append("<a>http://www.google.com</a><br/>") .append("<a href='http://www.facebook.com'>facebook</a>") .append("<small><p>More content</p></small>") .toString())); startActivity(Intent.createChooser(emailIntent, "Send email..."));
Los párrafos y las nuevas líneas se agregan como se esperaba. El estilo sin embargo no lo es. También cuando usted imprime la URL completa usted consigue un acoplamiento, pero cuando usted lo hace como el acoplamiento del facebook, usted no hace.
Sospecho que el cliente de correo electrónico en el teléfono elimina el estilo y se asegura de que los enlaces enlazan al texto visible. Así que el usuario sabe a dónde va el enlace. Además, si piensas en ello, la aplicación nativa de Gmail no tiene opciones de estilo. Esto puede provocar que el comportamiento de eliminación de estilo.
Al menos esa es mi teoría. 🙂
(NOTA: Solo probé en la aplicación nativa de Gmail!)
También cambié el tipo de Intent de SEND a SENDTO de esta manera sólo usa clientes de correo electrónico y no otras aplicaciones. Y quité el método de setType (), porque cuando usted lo utiliza, usted consigue una "aplicación no encontrada" error.