Les capacités dans shortcuts.xml
vous permettent de déclarer les types d'actions que les utilisateurs peuvent effectuer pour lancer votre application et effectuer directement une tâche spécifique.
Par exemple, les actions dans les applications de l'Assistant Google utilisent des fonctionnalités permettant aux développeurs d'étendre les fonctionnalités de l'application aux intents intégrés, ce qui permet aux utilisateurs d'activer et de contrôler ces fonctionnalités à l'aide de commandes vocales. Une capacité se compose du nom de l'action et d'un intent
ciblant la destination de votre application qui résout l'intent utilisateur.
Définir des fonctionnalités dans shortcuts.xml
Vous définissez des éléments capability
dans un fichier de ressources shortcuts.xml
dans votre projet de développement d'applications Android. Pour définir un élément capability
, procédez comme suit:
- Créez une ressource
shortcuts.xml
en suivant les instructions de la section Créer des raccourcis statiques. Incluez les informations requises suivantes dans votre capacité:
Nom de la capacité:action que vous souhaitez que votre application prenne en charge. Reportez-vous à la documentation des composants pour connaître la fonctionnalité qui nécessite des définitions de capacité. Les commandes vocales pour les actions dans les applications utilisent l'intent intégré
Action ID
pour les noms de fonctionnalités, que vous trouverez dans la documentation de référence sur les intents intégrés. Par exemple, l'intent intégréGET_THING
indiqueAction ID
commeactions.intent.GET_THING
.Destination de l'application:destination de votre application que l'action lance pour répondre à la requête de l'utilisateur. Définissez les destinations de l'application à l'aide d'éléments
intent
imbriqués danscapability
.Mappages de paramètres:chaque
intent
peut contenir des paramètres à transmettre en tant que donnéesextra
de l'intent. Par exemple, chaque intent intégré d'action dans les applications inclut des champs représentant les informations que les utilisateurs fournissent souvent dans les requêtes qui déclenchent l'intent intégré.
L'exemple suivant illustre une définition de capacité dans shortcuts.xml
pour actions.intent.START_EXERCISE
, un intent intégré qui permet aux utilisateurs d'utiliser des commandes vocales avec l'Assistant pour commencer un entraînement dans une application 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>
Dans l'exemple précédent, l'attribut android:name
de <capability>
fait référence à l'intent intégré START_EXERCISE
. Si un utilisateur appelle cet intent intégré en disant à l'Assistant "Hey Google, lance un footing dans ExampleApp", l'Assistant répond à la requête de l'utilisateur à l'aide des informations fournies dans l'élément intent
imbriqué. L'intent
de cet exemple définit les informations suivantes:
android:targetPackage
définit le package d'application cible pour cet intent.- Le champ
android:targetClass
spécifie l'activité de destination :com.example.sampleApp.ExerciseActivity
. - L'intent
parameter
déclare la prise en charge d'un paramètre d'intent intégréexercise.name
et la manière de transmettre la valeur du paramètre (collectée auprès de l'utilisateur) en tant que données supplémentaires dans leintent
.
Associer des raccourcis à une fonctionnalité
Une fois que vous avez défini une capacité, vous pouvez étendre ses fonctionnalités en lui associant des raccourcis statiques ou dynamiques. La façon dont les raccourcis sont associés à un capability
dépend de la fonctionnalité implémentée et des mots réels inclus dans la requête de l'utilisateur. Par exemple, lorsqu'un utilisateur commence un footing dans votre application de suivi de l'activité physique en disant à l'Assistant "Hey Google, lance un footing dans ExempleApp". L'Assistant peut utiliser un raccourci pour lancer une instance d'un capability
qui définit une entité d'exercice valide de "run" pour le paramètre exercise.name
.
Pour en savoir plus sur l'association de raccourcis aux actions dans les applications, consultez la section Présentation des actions dans les applications.