Las funciones de shortcuts.xml te permiten declarar los tipos de acciones que los usuarios pueden realizar para iniciar tu app y ejecutar directamente una tarea específica.
Por ejemplo, las Acciones en apps de Asistente de Google usan funciones para permitir que los desarrolladores extiendan las funciones integradas en la app a intents integrados (BII), lo que permite a los usuarios activar y controlar esas funciones con comandos por voz. Una función está compuesta por el nombre de la acción y un intent orientado al destino en tu app, que resuelve el intent del usuario.
Cómo definir funciones en shortcuts.xml
Define elementos capability en un archivo de recursos shortcuts.xml en tu proyecto de desarrollo de apps para Android. Para definir un elemento capability, haz lo siguiente:
- Para crear un recurso shortcuts.xml, sigue las instrucciones de Cómo crear accesos directos estáticos.
- Incluye la siguiente información obligatoria en tu función: - Nombre de la función: Es la acción que quieres que admita tu app. Consulta la documentación del componente para la función que requiere definiciones de capacidad. Los comandos habilitados por voz de Acciones en apps usan el BII - Action IDpara los nombres de las funciones, que puedes encontrar en la referencia de BII. Por ejemplo, el BII- GET_THINGindica que su- Action IDes- actions.intent.GET_THING.
- Destino de la app: Es el destino de tu app que se inicia para cumplir con la solicitud del usuario. Define los destinos de la app con los elementos - intentanidados en- capability.
- Mapeos de parámetros: Cada - intentpuede contener parámetros que se pasarán como datos- extradel intent. Por ejemplo, cada BII de Acciones en apps incluye campos que representan la información que los usuarios suelen proporcionar en las consultas que activan el BII.
 
En el siguiente ejemplo, se muestra una definición de capability en shortcuts.xml para actions.intent.START_EXERCISE, un BII que permite a los usuarios utilizar comandos por voz con Asistente para iniciar un entrenamiento en una app de fitness:
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
  <capability android:name="actions.intent.START_EXERCISE">
    <intent
      android:action="android.intent.action.VIEW"
      android:targetPackage="com.example.sampleApp"
      android:targetClass="com.example.sampleApp.ExerciseActivity">
      <parameter
        android:name="exercise.name"
        android:key="exerciseType"/>
    </intent>
  </capability>
</shortcuts>
En el ejemplo anterior, el atributo <capability> android:name hace referencia al BII START_EXERCISE. Si un usuario invoca este BII y le pregunta al Asistente: "Hey Google, inicia una caminata en AppDeEjemplo", Asistente completará la solicitud del usuario con la información proporcionada en el elemento intent anidado. El intent de este ejemplo define los siguientes detalles:
- El android:targetPackageestablece el paquete de la aplicación de destino para este intent.
- El campo android:targetClassespecifica la actividad de destino:com.example.sampleApp.ExerciseActivity.
- El intent parameterdeclara la compatibilidad con un parámetro de BIIexercise.namey cómo pasar el valor del parámetro, recopilado del usuario, como datos adicionales enintent.
Cómo asociar accesos directos con una función
Una vez que definas una capacidad, podrás extender su funcionalidad asociando accesos directos estáticos o dinámicos. La forma en que los accesos directos se vinculan a una capability depende de la función que se implemente y de las palabras reales incluidas en la solicitud de un usuario. Por ejemplo, cuando un usuario inicia una carrera en tu app de seguimiento de actividad física preguntándole al Asistente: "Hey Google, inicia una carrera en AppDeEjemplo". Asistente puede usar un acceso directo para iniciar una instancia de un capability que defina una entidad de ejercicio válida de "caminata" para el parámetro exercise.name.
Para obtener más información sobre cómo asociar accesos directos a Acciones en apps, consulta la descripción general de Acciones en apps.
