Cómo enviar correo electrónico con un enlace para abrir la aplicación de Android

He creado un código que envía un correo electrónico html a una dirección determinada. El correo electrónico contiene un vínculo como el siguiente:

<a href="crystalcloud://android?4567">Click to validate account</a> 

Estaba probando esto enviándolo a mi cuenta de gmail. Por alguna razón, cuando reciba el correo electrónico, no me dejará hacer clic en el enlace. Si pongo este enlace en una página web, mi aplicación se inicia bien.

¿Hay algo especial que tengo que hacer para que este enlace aparezca en un correo electrónico, o simplemente gmail bloquea este tipo de enlaces? ¿Hay alguna manera de evitar este problema en gmail?

EDIT: Añadido fragmentos de mi código

Código para enviar enlace:

  MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(emailAddress)); message.setSubject("New Crystal Cloud User"); message.setContent("Thank you for creating a new Crystal Cloud account!<br><a href=\"crystalcloud://android?4567">Click to validate account</a>", "text/html; charset=utf-8"); Transport transport = session.getTransport("smtp"); transport.connect(host, from, pass); transport.sendMessage(message, message.getAllRecipients()); transport.close(); 

Código de Android para responder a la intención:

  <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="crystalcloud" /> </intent-filter> 

Este es un problema con los clientes de correo electrónico de Android que no muestran vínculos como clicable a menos que sean http o https.

Mi solución fue usar un esquema http para abrir mi aplicación:

 <data android:scheme="http" android:host="com.company.app" android:port="3513" /> 

Esto funciona, pero en molesto porque le pide al usuario que abra la aplicación en el navegador o su aplicación. Otra solución es tener un enlace a un sitio web que luego hace un redireccionamiento javascript a su aplicación, aunque esto puede causar más problemas.

En su cabecera de correo, introduzca Content-Type: text/html para indicar que el contenido está en HTML para indicar que el correo viene en formato HTML. A continuación, el cliente de correo procesará el código HTML correctamente. También ayudará a incluir el enlace en un bloque <html></html> .

Estoy enfrentando el mismo problema en el último i consiguió la solución. Puede compartir texto y vínculos

  String link_val = "http://play.google.com/store/apps/details?id=" + MainActivity.this.getPackageName(); String body = "<a href=\"" + link_val + "\">" + link_val + "</a>"; String data = "Hello I am using this App.\nIt has large numbers of Words meaning with synonyms.\nIts works offline very smoothly.\n\n" + body; sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(data)); 
  • En caché JSON de webservice en android - patrón?
  • Compruebe si una ruta representa un archivo o una carpeta
  • NullPointerException cuando se utiliza CustomListAdapter
  • Logros de Google Play "IOException: Dirección ya en uso"
  • Cómo conectarse a firebird DB en android
  • El servicio android se reinicia en la aplicación matado
  • R.Java no se actualiza
  • Singleton con contexto en Android
  • Error al entregar el resultado ResultInfo
  • Obtener instancia de actividad
  • Smack RosterListener no funciona en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.