¿Cómo establecer la acción, categoría y datos para la intención?

Estoy programando una aplicación de Android. Quiero invocar otras aplicaciones para realizar ciertas operaciones (enviar correos electrónicos, etc.) ¿Cómo puedo saber qué acción y categoría establecer para la intención? ¿Debería buscar filtro de intención de otra aplicación? ¿Qué pasa si esa aplicación no es de código abierto?

Además, para los datos o atributo adicional, no sé cómo la aplicación de terceros se encargará de mi intención, por lo que no sé cómo configurar los atributos. Por ejemplo, quiero una cadena como el título del correo electrónico, una cadena como el contenido del correo electrónico, y otra cadena como el destinatario, y una imagen como el archivo adjunto. ¿Puedo incluir toda esta información en la intención? ¿Qué sucede si la aplicación de terceros no proporciona ninguna funcionalidad para manejarla?

Por lo general, para tareas comunes en Android hay un propósito general que envía en el que otras aplicaciones pueden registrarse.
Por ejemplo, para compartir algún texto, crearía una intención como:

Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); sendIntent.setType("text/plain"); startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to))); 

Mostrará el diálogo de partes nativas de android en el que el usuario puede elegir cómo desea compartirlo.

Específicamente para el correo electrónico que haría algo como:

 Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts( "mailto","[email protected]", null)); intent.putExtra(Intent.EXTRA_SUBJECT, "This is my email subject"); startActivity(Intent.createChooser(intent, "Email")); 

Otros ejemplos pueden ser lanzar la aplicación sms predeterminada:

 Intent sendIntent = new Intent(Intent.ACTION_VIEW); sendIntent.setData(Uri.parse("sms:")); sendIntent.putExtra("sms_body", getMessageBody()); 

O abre el marcador del teléfono:

 Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:"+number)); startActivity(intent); 

Usted necesita averiguar cuáles son las acciones que desea implementar en su aplicación y, a continuación, averiguar cómo implementar cada uno de ellos.

Puede encontrar más datos aquí:

  • Compartición de contenido de Android
  • Intenciones de Android – bajo las diversas acciones intencionales

Trate de usar la categoría y las acciones en la intención.

 Intent mailIntent = new Intent(Intent.ACTION_SEND); mailIntent.setType("text/plain"); mailIntent.putExtra(Intent.EXTRA_SUBJECT, "Reporting mail"); mailIntent.putExtra(Intent.EXTRA_TEXT, "Some message"); mailIntent.putExtra(Intent.EXTRA_EMAIL, "[email protected]"); startActivity(mailIntent); 

Este es un ejemplo para enviar correo electrónico. Para más detalles, consulte http://developer.android.com/guide/components/intents-common.html

  • Adición de múltiples puntos de acceso en Google Maps mediante Android Intent
  • ¿Utilizar la intención de compartir de Android en Javascript en Chrome?
  • Android: cómo evitar que varias instancias de una actividad se inicien desde un widget?
  • Actualizar la actividad actual sin retraso
  • Transmitir datos a onDestroy () de Service
  • Ajuste el botón Visible en otro acticty con la configuración de Preferencias
  • La mejor manera de determinar la aplicación actual (en ejecución) actual (utilizando un servicio?)
  • Android onNewIntent del lanzador de aplicaciones me da la última intención
  • Actividad de inicio de la URL
  • Manera alternativa de implementar un tirador deslizante que ha quedado obsoleto desde la api 17
  • ¿Cómo puedo enlazar este servicio en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.