Ajouter des fonctionnalités aux raccourcis

Les fonctionnalité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.

Par exemple, les actions dans l'application de l'Assistant Google utilisent des fonctionnalités pour permettre aux développeurs d'étendre des fonctionnalités dans 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'une intent ciblant la destination dans votre application qui résout l'intent de l'utilisateur.

Définir les fonctionnalités dans un fichier shortcuts.xml

Vous définissez des éléments capability dans un fichier de ressources shortcuts.xml de votre projet de développement d'applications 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 requises suivantes dans votre capacité:

    • Nom de la fonctionnalité:action que votre application doit accepter. Reportez-vous à la documentation du composant pour connaître la fonctionnalité qui nécessite des définitions de capacité. Les commandes vocales des 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 répertorie ses Action ID comme actions.intent.GET_THING.

    • Destination de l'application:destination de votre application vers laquelle l'action est lancée pour répondre à la requête de l'utilisateur. Définissez les destinations des applications à 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'intent. Par exemple, chaque intent intégré d'une action dans l'application inclut des champs représentant les informations que les utilisateurs fournissent souvent dans les requêtes qui le déclenchent.

L'exemple suivant illustre une définition des fonctionnalités 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 <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 exécution dans ExampleApp", l'Assistant traite la requête de l'utilisateur à l'aide des informations fournies dans l'élément intent imbriqué. Dans cet exemple, intent 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 explique comment transmettre la valeur de paramètre (collectée auprès de l'utilisateur) en tant que données supplémentaires dans intent.

Associer des raccourcis à une capacité

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 liés à un capability dépend de la fonctionnalité mise en œuvre et des mots réels inclus dans la requête de l'utilisateur. Par exemple, lorsqu'un utilisateur commence une course à pied dans votre application de suivi de remise en forme en demandant à l'Assistant : "Hey Google, démarre une course à pied dans l'appli XXX". L'Assistant peut utiliser un raccourci pour lancer une instance d'capability qui définit une entité d'exercice valide "run" pour le paramètre exercise.name.

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