¿Cómo hacer que mi aplicación de Android aparezca en el selector de aplicaciones cuando envíe un mensaje de correo electrónico a un chat de WhatsApp?

Estoy interesado en hacer que mi aplicación aparezca en la lista de aplicaciones mostrada cuando utilizo la función "conversación por correo electrónico" de WhatsApp.

Cuando registro mi teléfono mientras uso la función de "conversación por correo electrónico" de WhatsApp, puedo ver una intención SEND_MULTIPLE recibida por Gmail:

 I/ActivityManager( 859): START u0 {act=android.intent.action.SEND_MULTIPLE typ=text/* flg=0xb080001 pkg=com.google.android.gm cmp=com.google.android.gm/.ComposeActivityGmail (has clip) (has extras)} from uid 10114 on display 0 

Supongo que debo agregar un filtro de intenciones para la acción SEND_MULTIPLE en mi manifiesto de aplicación.

Actualmente mi AndroidManifest.xml es:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="co.xxx.xxx" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" > <activity android:name=".MyActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.SENDTO" /> <data android:scheme="mailto" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> <data android:scheme="mailto" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.SEND_MULTIPLE" /> <data android:mimeType="*/*" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.SEND" /> <data android:mimeType="*/*" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> </manifest> 

Sin embargo, cuando ejecuto mi aplicación en mi teléfono a través de Android Studio, no aparece cuando intento exportar mi conversación de WhatsApp. Por el contrario, aparece en el selector de aplicaciones cuando intento compartir una imagen de mi galería.

¿Qué me falta en el AndroidManifest que impide que se muestre mi aplicación al enviar mis conversaciones por correo electrónico a WhatsApp? ¿Hay algo más que deba anunciar al sistema operativo para hacer que mi aplicación sea elegible para aparecer en el selector de aplicaciones?

He intentado instalar la aplicación K-9 Mail . Justo después de instalarlo, no aparece en el selector de aplicaciones cuando envía un mensaje por correo electrónico a WhatsApp, pero después de configurar una cuenta en K-9, aparece en el selector. ¿Es posible que K9 anuncie al sistema operativo que está listo para enviar correos electrónicos?

¡Gracias!

Desafortunadamente, incluso si su manifiesto está configurado correctamente, no puede ver su aplicación en el selector de aplicaciones cuando envía un mensaje de correo electrónico porque su aplicación debe estar en la lista blanca de WhatsApp. Sólo los nombres de paquetes elegidos estarán disponibles en el selector de aplicaciones de WhatsApp.

Por ejemplo, tenemos una aplicación con el nombre del paquete com.example.whatsappemailchat . El AndroidManifest.xml es algo como esto:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.whatsappemailchat" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" > <activity android:name="com.example.whatsappemailchat.MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.SENDTO"/> <data android:scheme="mailto"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.SEND"/> <data android:mimeType="*/*"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.SEND_MULTIPLE"/> <data android:mimeType="*/*"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <data android:scheme="mailto"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> </intent-filter> </activity> </application> </manifest> 

y este es el build.gradle :

 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.example.whatsappemailchat" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } 

Todo está configurado correctamente, ejecutamos nuestra aplicación, pero si seleccionamos More > Email chat nuestra aplicación no aparecerá.

Ahora cambia el .test applicationId a com.google.android.gm.test (el nombre del paquete de Gmail más .test como sufijo para evitar la colisión con Gmail real) en nuestro build.gradle :

 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.google.android.gm.test" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } 

Ahora ejecuta nuestra aplicación, abre WhatsApp, selecciona una charla, elige More > Email chat y, por arte de magia, nuestra aplicación estará en el selector de aplicaciones, como se puede ver en esta captura de pantalla:

introduzca la descripción de la imagen aquí

Puedo confirmar que estos nombres de paquetes están en la lista blanca de WhatsApp:

  • com.google.android.gm
  • com.fsck.k9
  • com.boxer.email
  • com.google.android.email

Creo que la única solución viable es tratar de ponerse en contacto con WhatsApp y preguntar si es posible hacer una lista blanca de su nombre de paquete.

  • Leyendo mensajes de whatsapp
  • Whatsapp como animación de imagen de perfil
  • PhoneGap y WhatsApp
  • Enviar texto a un contacto específico (whatsapp)
  • ¿Cómo mostrar mi diseño en la parte frontal de teclado suave Android?
  • Envío de imagen a través de WhatsApp a un destinatario específico (Android)
  • Extracción de mensajes de WhatsApp desde una aplicación Phonegap
  • ¿Cómo detecta la aplicación whatsapp del usuario el cambio en la imagen de perfil de su contacto?
  • ¿Cómo obtener los contactos de whatsapp de Android?
  • Enviar mensaje a través de WhatsApp Por intención
  • Inicie WhatsApp desde URL HREF con texto / contenido personalizado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.