Ajouter des fonctionnalités aux raccourcis

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 capacités pour permettre aux développeurs d'étendre les fonctionnalités des applications aux intents intégrés (BII). Les utilisateurs peuvent ainsi activer et contrôler ces fonctionnalités à l'aide de commandes vocales. Une fonctionnalité se compose du nom de l'action et d'un intent ciblant la destination dans votre application qui répond à l'intention de l'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 :

  1. Créez une ressource shortcuts.xml en suivant les instructions de la section Créer des raccourcis statiques.
  2. Incluez les informations obligatoires suivantes dans votre fonctionnalité :

    • Nom de la fonctionnalité : 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 capacités. Les commandes vocales des actions dans l'application 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 liste son Action ID comme actions.intent.GET_THING.

    • Destination de l'application : destination de 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 intent imbriqués dans capability.

    • Mappages de paramètres : chaque intent peut contenir des paramètres à transmettre en tant que données extra de l'intention. Par exemple, chaque intent intégré d'action dans l'application 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 <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 une course dans ExempleApp, 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 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 compatibilité avec un paramètre d'intent intégré exercise.name et 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 en étendre les capacités en y 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 inclus dans la requête d'un utilisateur. Par exemple, lorsqu'un utilisateur commence une course à pied dans votre application de suivi de la forme physique en demandant à l'Assistant Hey Google, commence 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 "course" valide pour le paramètre exercise.name.

Pour en savoir plus sur l'association de raccourcis aux actions dans les applications, consultez la présentation des actions dans les applications.