Acciones de aplicación predefinidas. Enlace a mi aplicación de Contactos

Quiero escribir la aplicación que está conectada con los contactos.

Escenario:

  1. Ingresar al teléfono Contactos
  2. Elegimos el elemento de contacto Introduzca aquí la descripción de la imagen

  3. Y el icono de mi aplicación debería aparecer en el cuadro de diálogo de QuickAction.

  4. Hago clic en el icono de mi aplicación y la aplicación comienza con los datos del registro de contacto.

¿Qué tengo que añadir a AndroidManifest para hacerlo?

Agregue este filtro de intenciones para que su aplicación sea visible para todos los contactos.

<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="vnd.android.cursor.item/name" /> </intent-filter> 

Cambie el tipo de mimet, de modo que sólo los contactos con un determinado dato tengan su actividad.

Por ejemplo, si desea que su actividad se muestre sólo para contactos con correo electrónico, cambie el tipo de mimetype a vnd.android.cursor.item/email_v2 . Puede obtener los nombres de los tipos de mimet de las subclases de DataColumns

Exactamente este comportamiento es posible sólo cuando su aplicación en una aplicación única en el dispositivo de los usuarios que es capaz de procesar el tipo de contenido deseado. Por ejemplo, si desea utilizar el tipo de contenido "enviar SMS" o "hacer una llamada telefónica", es probable que su aplicación no sea la única en el dispositivo que pueda procesar dichas acciones (también hay un teléfono de marcación telefónica y SMS Aplicaciones).

De todas formas, siempre puedes agregar tu aplicación a la lista de aplicaciones que aparecerá cuando el usuario haga clic en esas acciones rápidas. Se verá así:

Lista de aplicaciones para el tipo de contenido

Para hacer esto, usted necesita:

  • Especifique en su archivo de manifiesto que su aplicación es capaz de manejar la acción deseada, por ejemplo, "enviar SMS". Para ello, debe agregar un filtro de intenciones a su Actividad, que desea que se llame en ese caso:

     <intent-filter> <action android:name="android.intent.action.SENDTO" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="sms" /> <data android:scheme="smsto" /> </intent-filter> 
  • En su actividad de destino, agregue código, que procese el tipo de contenido deseado. En el método Activity onCreate() onNewIntent() o en el parámetro de cadena de datos de la consulta del método onNewIntent() desde la llamada a Intent. He aquí un ejemplo de código para demostrar una idea general:

     public class MyActivity extends Avtivity { @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); String dataStr = intent.getDataString(); // do some processing with dataStr } @Override protected void onCreate(Bundle savedInstanceState) { Intent callIntent = getIntent(); String dataStr = callIntent.getDataString(); // do some processing with dataStr } } 
  • Pantalla personalizada con el cuadro de diálogo
  • ¿Cómo hacer que un diálogo de alerta llene el 90% del tamaño de la pantalla?
  • ¿Cómo mostrar el diálogo incluso si la pantalla está bloqueada?
  • Aplicar el tema al diálogo DialogPreference
  • Visualización de alertas en Activity.onCreate (..)
  • ¿Cómo agregar el título al cuadro de diálogo personalizado?
  • Diálogo de alerta en android no debe descartar
  • Cómo agregar el diseño de fondo en el cuadro de diálogo Modal BottomSheet?
  • No puedo mostrar la lista en un diálogo con setMultiChoiceItems en Android
  • El cuadro de diálogo no aparece
  • Línea negra en el diálogo personalizado en Galaxy S 2
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.