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. Une capacité se compose du nom de l'action et d'un intent ciblant la destination de votre application qui résout l'intention utilisateur.
Définir des capacités dans shortcuts.xml
Vous définissez des éléments capability dans un fichier de ressources shortcuts.xml de votre projet de développement d'application Android. Pour définir un élément capability, procédez comme suit :
- Créez une ressource
shortcuts.xmlen suivant les instructions de la section Créer des raccourcis statiques. Incluez les informations obligatoires suivantes dans votre capacité :
Nom de la capacité : action que vous souhaitez que votre application prenne en charge. Consultez la documentation sur les composants pour la fonctionnalité qui nécessite des définitions de capacité.
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
intentimbriqués dans lacapability.Mappages de paramètres : chaque
intentpeut contenir des paramètres à transmettre en tant que donnéesextrade l'intent.
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 <capability> android:name fait référence à
l'intent intégré START_EXERCISE. Si un utilisateur appelle cet intent intégré en demandant à l'Assistant "Hey
Google, lance un footing dans ExempleApp", 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:targetPackagedéfinit le package d'application cible pour cet intent.- Le champ
android:targetClassspécifie l'activité de destination :com.example.sampleApp.ExerciseActivity. - Le
parameterd'intent déclare la prise en charge d'un paramètre d'intent intégréexercise.nameet explique comment 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 capacité
Une fois que vous avez défini une capacité, vous pouvez étendre ses fonctionnalités en lui associant des raccourcis statiques ou dynamiques. La manière dont les raccourcis sont liés à une capability dépend de la fonctionnalité implémentée et des mots réels inclus dans la requête d'un utilisateur. Par exemple, lorsqu'un utilisateur commence une course à pied dans votre application de suivi de la remise en forme
en demandant à l'Assistant, "Hey Google, lance un footing dans ExempleApp." l'Assistant peut utiliser un raccourci pour lancer une instance d'une capability qui définit une entité d'exercice valide de "course à pied" pour le paramètre exercise.name.