Assistant Google pour Wear OS

Les assistants vocaux des montres permettent de réaliser des scénarios rapides et efficaces lors de vos déplacements. Les interactions vocales sur les accessoires connectés sont dynamiques. L'utilisateur peut parler à son poignet sans avoir à regarder l'appareil en attendant une réponse.

Grâce aux actions dans l'application de l'Assistant, les développeurs Android peuvent intégrer l'Assistant Google dans les applications Wear OS, ce qui permet aux utilisateurs d'accéder plus rapidement à leurs applications avec des commandes vocales comme "Hey Google, lance mon jogging sur l'appli XXX".

Limites

L'Assistant sur Wear prend en charge les interactions avec les applications multimédias et le suivi des entraînements. Pour obtenir des conseils sur l'intégration d'applications multimédias avec l'Assistant, consultez Assistant Google et applications multimédias. Les intents intégrés suivants pour les applications de santé et de remise en forme sont compatibles avec les applications Wear OS :

Fonctionnement

Les actions dans les applications permettent d'intégrer l'Assistant à votre application. Les utilisateurs peuvent ainsi accéder aux fonctionnalités de votre application rapidement par commande vocale. Lorsqu'un utilisateur indique à l'Assistant qu'il souhaite utiliser votre application, celui-ci recherche les actions dans l'application enregistrées dans la ressource shortcuts.xml.

Les actions dans l'application sont décrites dans shortcuts.xml avec des éléments de fonctionnalité Android. Les éléments de fonctionnalité associent des intents intégrés, qui sont des descriptions sémantiques d'une fonctionnalité d'application, avec des instructions de traitement, telles qu'un modèle de lien profond. Lorsque vous importez votre application à l'aide de la console Google Play, Google enregistre les fonctionnalités déclarées dans shortcuts.xml. Les utilisateurs peuvent ainsi les déclencher depuis l'Assistant.

Flux d'actions dans une application

Le schéma précédent montre un utilisateur qui met en pause son exercice dans une application autonome. Voici les étapes qui suivent :

  1. L'utilisateur adresse une demande vocale à l'Assistant pour l'application connectée correspondante.
  2. L'Assistant associe cette requête à un modèle pré-entraîné et extrait tous les paramètres de la requête compatibles avec l'intent intégré.
  3. Dans cet exemple, l'Assistant associe la requête à l'intent intégré PAUSE_EXERCISE et extrait le paramètre de nom d'exercice "randonnée".
  4. L'application est déclenchée via sa définition de traitement shortcuts.xml pour cet intent intégré.
  5. L'application gère le traitement et met l'exercice en pause.

Connectivité

Le développement des actions dans l'application varie en fonction des fonctionnalités de votre application dans l'écosystème d'appareils Android.

  • Partage de connexion : lorsqu'une application pour accessoire connecté dépend de l'application mobile pour toutes ses fonctionnalités, les requêtes des utilisateurs adressées à l'Assistant via la montre sont traitées sur l'appareil mobile. La logique de traitement des actions dans l'application doit être intégrée à l'application mobile pour que ce scénario fonctionne correctement.

  • Sans partage de connexion : lorsqu'une application pour accessoire connecté est indépendante d'une application mobile pour ses fonctionnalités, l'Assistant traite les requêtes des utilisateurs localement sur la montre. Les fonctionnalités des actions dans l'application doivent être intégrées à l'application connectée pour que ces requêtes soient traitées correctement.

Ajouter des fonctionnalités vocales à Wear

Pour intégrer des actions dans l'application Wear OS, procédez comme suit :

  1. Faites correspondre la fonctionnalité de l'application pour laquelle vous souhaitez activer la voix à un intent intégré approprié.
  2. Déclarez la prise en charge des raccourcis Android dans la ressource AndroidManifest.xml de votre activité principale.

    <!-- AndroidManifest.xml -->
    <meta-data
        android:name="android.app.shortcuts"
        android:resource="@xml/shortcuts" />
    
  3. Ajoutez un élément <intent-filter> au fichier AndroidManifest.xml. Cette opération permettra à l'Assistant d'utiliser des liens profonds pour se connecter au contenu de votre application.

  4. Créez des raccourcis.xml pour fournir les détails de traitement pour vos intents intégrés. Vous utiliserez des éléments de raccourci capability pour déclarer à l'Assistant les intents intégrés compatibles avec votre application. Pour en savoir plus, consultez la section Ajouter des fonctionnalités.

  5. Dans shortcuts.xml, implémentez un pour l'intent intégré de votre choix. L'exemple suivant illustre une fonctionnalité pour l'intent intégré START_EXERCISE :

    <?xml version="1.0" encoding="utf-8"?>
    <!-- This is a sample shortcuts.xml -->
    <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="YOUR_UNIQUE_APPLICATION_ID"
          android:targetClass="YOUR_TARGET_CLASS">
          <!-- Eg. name = "Running" -->
          <parameter
            android:name="exercise.name"
            android:key="name"/>
          <!-- Eg. duration = "PT1H" -->
          <parameter
            android:name="exercise.duration"
            android:key="duration"/>
        </intent>
      </capability>
    </shortcuts>
    
  6. Le cas échéant, étendez la prise en charge des variantes vocales de l'utilisateur à l'aide d'un inventaire intégré, qui représente les fonctionnalités et le contenu de votre application.

    <capability android:name="actions.intent.START_EXERCISE">
      <intent
        android:targetPackage="com.example.myapp"
        android:targetClass="com.example.myapp.ExerciseActivity">
        <parameter android:name="exercise.name" android:key="exercise" />
      </intent>
    </capability>
    
    <shortcut android:shortcutId="CARDIO_RUN">
      <capability-binding android:key="actions.intent.START_EXERCISE">
        <parameter-binding
          android:key="exercise.name"
          android:value="@array/run_names" />
        </capability-bindig>
    </shortcut>
    
  7. Mettez à jour la logique de votre application pour gérer le traitement des actions entrantes dans votre application.

    //FitMainActivity.kt
    
    private fun handleIntent(data: Uri?) {
        var actionHandled = true
        val startExercise = intent?.extras?.getString(START_EXERCISE)
    
        if (startExercise != null){
            val type = FitActivity.Type.find(startExercise)
            val arguments = Bundle().apply {
                putSerializable(FitTrackingFragment.PARAM_TYPE, type)
            }
            updateView(FitTrackingFragment::class.java, arguments)
        }
        else{
            showDefaultView()
            actionHandled = false
        }
        notifyActionSuccess(actionHandled)
    }
    

Prévisualiser, tester et publier votre application

Les actions dans l'application vous permettent d'examiner et de tester votre application. Pour en savoir plus, consultez Plug-in Assistant Google pour Android Studio. Une fois que vous avez testé votre application et créé une version de test, vous pouvez demander un examen des actions dans l'application et procéder au déploiement. Consultez les bonnes pratiques suivantes pour découvrir comment traiter les erreurs courantes.

Bonnes pratiques

Pour créer une expérience utilisateur positive lors de l'intégration de votre application avec l'Assistant, suivez les bonnes pratiques ci-dessous.

Affichez un écran de confirmation correspondant ou adapté, ainsi qu'un retour haptique et un commentaire audio, pour répondre à la requête d'un utilisateur, que ce soit lorsqu'elle aboutit ou qu'une erreur se produit.

Qualité basique Qualité améliorée Qualité optimale
  • Créez un intent pour démarrer ConfirmationActivity à partir d'une activité.
  • Créez un intent pour démarrer ConfirmationActivity à partir d'une activité.
  • Émettez un signal sonore et un retour haptique pour indiquer l'état actuel.
  • Créez un intent pour démarrer ConfirmationActivity à partir d'une activité.
  • Utilisez la synthèse vocale et le retour haptique pour indiquer une erreur ou un succès.

Erreurs et solutions courantes

Pour les cas d'erreur suivants, utilisez les messages ConfirmationActivity d'application recommandés suivants.

Cas d'erreur Exemple d'interaction utilisateur Réponse de l'application
Activité déjà en cours "Démarre ma séance de nom de l'exercice"
"Reprends ma séance de nom de l'exercice"
Erreur d'affichage : "Activité déjà en cours"
Aucune activité lancée "Mets en pause/Arrête ma séance de nom de l'exercice" Erreur d'affichage : "Aucune activité lancée"
Non-concordance des types d'activité "Mets en pause/Arrête ma séance de nom de l'exercice", qui est un type d'exercice différent de l'activité en cours. Erreur d'affichage : "Le type d'activité ne correspond pas"
Erreur de connexion "Démarre ma séance de nom de l'exercice", lorsque l'utilisateur n'est pas connecté à l'application. Lire le retour haptique pour alerter l'utilisateur et le rediriger vers l'écran de connexion
Erreur d'autorisation L'utilisateur n'est pas autorisé à démarrer l'activité demandée. Lire le retour haptique pour alerter l'utilisateur et le rediriger vers l'écran de demande d'autorisation
Problème de capteur L'utilisateur a désactivé les services de localisation dans les paramètres de son appareil. Lire le retour haptique pour alerter les utilisateurs et afficher l'écran d'erreur du capteur Étapes suivantes facultatives :
  • Démarrer l'activité sans le suivi des capteurs et en informer l'utilisateur
  • Demander à l'utilisateur de confirmer le lancement de l'activité sans le suivi des capteurs