¿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:
- Abrir conversación en Whatsapp y rellenar el texto
- Ejemplos de Android Whatsapp / Chat
- ¿Cómo supera WhatsApp el retardo de notificaciones de GCM Push?
- Enviar el mensaje whatsapp al contacto especfico
- Emoticonos de whatsapp y telegrama
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!
- Empieza whatsapp con android.content.Intent.ACTION_SENDTO
- ¿Cómo puedo compartir el texto de la aplicación en un número determinado?
- ¿Cómo compartir el texto de WhatsApp desde mi aplicación?
- ¿Cómo recuperar imágenes de perfil de Whatsapp?
- Transición de elementos compartidos de Android: transformación de un ImageView de un círculo a un rectángulo y viceversa
- Notificación como whatsapp o sms app android
- ¿Cómo obtener los contactos de un grupo de WhatsApp en Android?
- ¿Cómo implementar WhatsApp como el diseño de materiales SearchView?
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:
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.
- ¿Puede guardar un borrador para su ficha de tienda en la tienda de Google Play?
- ¿Cómo usar HTTPS y HTTP para analizar datos JSON en Android?