Las funciones de shortcuts.xml
te permiten declarar los tipos de acciones que los usuarios pueden realizar para iniciar tu app y realizar una tarea específica directamente.
Por ejemplo, las Acciones en apps de Asistente de Google usan capacidades para permitir que los desarrolladores extiendan las funciones de la app a intents integrados (BIIs), lo que permite que los usuarios activen y controlen esas funciones con comandos por voz. Una función consiste en 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 que se indican en Cómo crear accesos directos estáticos. Incluye la siguiente información obligatoria en tu capacidad:
Nombre de la función: Es la acción que deseas que admita tu app. Consulta la documentación de los componentes de la función que requiere definiciones de funciones. Los comandos habilitados por voz de Acciones en apps usan el BII
Action ID
para los nombres de las funciones, que puedes encontrar en la referencia de BII. Por ejemplo, el BIIGET_THING
indica suAction ID
comoactions.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
intent
anidados encapability
.Asignaciones de parámetros: cada
intent
puede contener parámetros que se pasarán como datosextra
del intent. Por ejemplo, cada BII de Acciones en apps incluye campos que representan información que los usuarios suelen proporcionar en las consultas que activan el BII.
En el siguiente ejemplo, se muestra una definición de función en shortcuts.xml
para actions.intent.START_EXERCISE
, un BII que permite a los usuarios usar 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:targetPackage
establece el paquete de la aplicación de destino para este intent. - El campo
android:targetClass
especifica la actividad de destino:com.example.sampleApp.ExerciseActivity
. - El intent
parameter
declara la compatibilidad con un parámetro de BIIexercise.name
y cómo pasar el valor del parámetro (recopilado por el usuario) como datos adicionales en elintent
.
Cómo asociar accesos directos con una función
Una vez que definas una función, puedes extender su funcionalidad asociando atajos estáticos o dinámicos. La forma en que se vinculan los atajos 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 comienza a correr en tu app de seguimiento de estado físico cuando le pregunta a Asistente: "Hey Google, inicia una actividad de correr en App de Ejemplo". Asistente puede usar un atajo para iniciar una instancia de una capability
que defina una entidad de ejercicio válida "ejecutar" para el parámetro exercise.name
.
Si deseas obtener más información para asociar accesos directos a Acciones en apps, consulta la descripción general de Acciones en apps.