¿Cómo activar el clic o el evento de envío en el uso compartido de datos en otras aplicaciones en Android?

Estoy intentando compartir datos de mi aplicación con otra aplicación como sms o cualquier otra aplicación. Tengo una aplicación donde necesito enviar o compartir algunos datos a aplicaciones como sms o fb messenger. Usando este enlace, puedo abrir la aplicación y agregar datos al cuadro de texto usando este código:

Intent sendIntent = new Intent(); sendIntent.setPackage("com.sms or fb"); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); sendIntent.setType("text/plain"); startActivity(sendIntent); 

Usando esta aplicación puedo abrir la otra aplicación y añadir valor en el área de texto mi pregunta es ¿hay alguna manera por la que puedo activar el clic o enviar evento para enviar mensajes automáticos a otra aplicación como sms facebook. Si tan cómo he visto la aplicación de google donde utilicé mi voz para enviar hola a mi whatsapp contacto así que este método es allí la aplicación de google puede enviar el mensaje y el acontecimiento del disparador usando mi voz. Mi pregunta es cómo puedo activar el envío de eventos con mi código de Android. Si el sistema de raíces está ahí también puedo usarlo.

Ninguna de las respuestas es ni siquiera cerca de lo que quiero resolver ninguna respuesta merece recompensa.

No hay api oficial para las aplicaciones normales de terceros para simular la interacción del usuario. Francamente, no me gustaría que mi aplicación fuera controlada remotamente por otra aplicación. Dependiendo de la aplicación que desee controlar, puede haber algunas opciones si estas aplicaciones ofrecen sus servicios o contenido proiders a otras aplicaciones. Pero usted tendría que consultar su doc ​​api, si existe.

Como sugiere @Thomas. No hay manera oficial de decirle al otro sobre qué hacer. Para la aplicación Google, las aplicaciones 3ª exponen su Intent de invocar una acción concreta en su aplicación de Google. Probablemente usted podría explorar cómo lo hace.

Pero hay algunas soluciones posibles como la exposición de la aplicación Intent de activar la acción de la aplicación de terceros.

Supongo que necesita la captura de la intención de que la aplicación de voz de Google está disparando a la aplicación whatsapp / facebook y utilizar la misma intención de su app.to comprobar qué intenciones están recibiendo disparado uso adb logcat -b eventos.

Sin embargo me siento incluso si dispara la misma intención el control de seguridad en la aplicación de destino podría impedir que lo haga.

Usted necesita comprobar si facebook / whatsapp tiene API disponibles públicamente para hacerlo. Si no es imposible.

Otro enfoque: Use Uiautomator para hacer clic en el botón de otras aplicaciones. Pero esto es complicado de implementar, ya que puede que necesite una aplicación separada que escuche los eventos y active el código de automatización.

No sé si funciona, pero hay una aplicación SMSButtler que responde automática en receveid SMS. Lo bueno es que la aplicación es opensource y puedes descargar el código de esta publicación de Github .

No puedo darle una respuesta sobre su problema de Whatsapp pero analizé el código y conseguí este método fuera de allí:

Para enviar automáticamente un mensaje SMS, primero debe crear un SMSManager

 SmsManager sms = SmsManager.getDefault(); 

Y luego simplemente envíe un mensaje de texto

 sms.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent); 

Parámetro:

  • destinationAddress la dirección para enviar el mensaje a
  • scAddress es la dirección del centro de servicio o null para usar el SMSC predeterminado actual
  • text del cuerpo del mensaje a enviar
  • sentIntent if not NULL este PendingIntent se transmite cuando el mensaje se envía correctamente o falla.
  • deliveryIntent si no es NULL este PendingIntent se transmite cuando el mensaje se entrega al destinatario. El raw pdu del informe de estado está en los datos extendidos ("pdu").

Importante: El uso de este método requiere que tu aplicación tenga el permiso android.Manifest.permission_SEND_SMS.

Nota: También hay otros métodos de esta clase donde puede por ejemplo enviar imágenes u otro contenido.

Hay un sitio / app llamado IFTTT (si esto entonces que) que puede controlar otros servicios y enviar alertas / correos electrónicos / etc. Enlace: https://ifttt.com/

Si quieres que otras aplicaciones activen eventos en tus aplicaciones, una forma general incluye dos pasos :.

  1. Su aplicación debe proporcionar API siguiendo la forma de Android.

  2. Otras aplicaciones interactúan con tu aplicación consumiendo la API anterior.

El tipo de API y su implementación depende de los datos y la función de la aplicación. Por ejemplo, puede considerar utilizar Proveedor de contenido, Intención y Difusión para proporcionar API.

No hay ninguna forma general proporcionada por Android para el control remoto de otra aplicación como usted pretende. Tendrías que modificar la aplicación que deseas controlar o el propio sistema Android. De cualquier manera, no será posible sin modificaciones no triviales en el código fuente del sistema o de la aplicación.

Siga el entrenamiento oficial de Android (que se muestra a continuación):

Creación de aplicaciones con uso compartido de contenido: https://developer.android.com/training/building-content-sharing.html

Envío de datos sencillos a otras aplicaciones: https://developer.android.com/training/sharing/send.html

Recepción de datos sencillos de otras aplicaciones: https://developer.android.com/training/sharing/receive.html

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.