Les capacités de 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 fonctionnalité se compose du nom de l'action et d'un intent ciblant la destination dans votre application qui résout l'intention utilisateur.
Définir des fonctionnalités dans shortcuts.xml
Vous définissez les é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 fonctionnalité :
Nom de la capacité : action que vous souhaitez que votre application prenne en charge. Consultez la documentation du composant pour la fonctionnalité qui nécessite des définitions de fonctionnalités.
Destination dans l'application : destination dans votre application vers laquelle l'action redirige l'utilisateur pour répondre à sa requête. Définissez les destinations de l'application à l'aide d'éléments
intentimbriqués danscapability.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 android:name de <capability> fait référence à l'intent intégré START_EXERCISE. Si un utilisateur appelle cet intent intégré en demandant à l'Assistant "Hey Google, démarre une course à pied dans l'application XXX", l'Assistant répond à la requête de l'utilisateur à l'aide des informations fournies dans l'élément intent imbriqué. Le intent de cet exemple définit les détails suivants :
android:targetPackagedéfinit le package d'application cible pour cet intent.- Le champ
android:targetClassspécifie l'activité de destination :com.example.sampleApp.ExerciseActivity. - L'intent
parameterdéclare la compatibilité avec un paramètre d'intent intégréexercise.nameet indique comment transmettre la valeur du paramètre (collectée auprès de l'utilisateur) en tant que données supplémentaires dans l'intent.
Associer des raccourcis à une fonctionnalité
Une fois que vous avez défini une fonctionnalité, vous pouvez l'étendre en lui associant des raccourcis statiques ou dynamiques. La manière dont les raccourcis sont associés à un capability dépend de la fonctionnalité implémentée et des mots inclus dans la requête de l'utilisateur. Par exemple, lorsqu'un utilisateur commence à courir avec votre application de suivi d'activité physique en demandant à l'Assistant "Hey Google, lance une course à pied dans ExempleApp". L'Assistant peut utiliser un raccourci pour lancer une instance d'un capability qui définit une entité d'exercice valide de "course" pour le paramètre exercise.name.