Intents intégrés pour les actions dans les applications

Les intents intégrés permettent à votre application d'exprimer ses fonctionnalités de traitement à Google. En déclarant des fonctionnalités dans votre fichier shortcuts.xml et en mappant les paramètres d'intent au traitement, vous permettez à l'Assistant Google de lancer votre application sur un écran spécifique en réponse à une requête, afin que l'utilisateur puisse effectuer une tâche.

Les intents intégrés sont regroupés par catégories d'applications. Chaque catégorie représente un ensemble de tâches courantes que les utilisateurs souhaitent souvent effectuer dans leurs applications. Vous trouverez la liste complète des intents intégrés disponibles, leurs paramètres et des exemples de requêtes utilisables pour les tests dans la documentation de référence sur les intents intégrés.

De nombreux intents intégrés présentent des exigences et des recommandations de déploiement spécifiques. Ces exigences et recommandations permettent à votre application d'offrir la meilleure expérience possible à vos utilisateurs.

Figure 1. Appelez l'intent intégré START_EXERCISE avec une requête vocale à l'Assistant.
Figure 2. Lancez l'application sur un écran spécifique pour commencer la tâche START_EXERCISE.
Figure 3. afficher un widget en réponse à une requête ;

Implémenter des intents intégrés et gérer les paramètres d'intent

Pour les actions dans l'application, vous déclarez les fonctionnalités et gérez les paramètres d'intent intégré dans votre fichier shortcuts.xml. Pour implémenter un intent intégré et gérer ses paramètres, procédez comme suit:

  1. Déclarez capability avec l'intent intégré choisi.
  2. Ajoutez des éléments parameter imbriqués pour chaque champ d'intent intégré que vous souhaitez ajouter.
    1. Si vous utilisez targetClass ou targetPackage, mappez-les sur l'intent Android extras à l'aide du nom de votre choix.
    2. Si vous utilisez une URL de lien profond, utilisez les paramètres nommés dans la chaîne de requête du modèle d'URL.

Pour gérer un paramètre d'intent intégré, mappez le paramètre d'intent intégré au paramètre correspondant d'un intent Android explicite dans votre capability. Vous pouvez ensuite utiliser sa valeur dans votre application. Celle-ci n'a pas besoin de gérer les paramètres d'intent intégré. Toutefois, essayez de gérer les champs de données marqués comme recommandés dans la documentation de référence sur les intents intégrés.

Vous pouvez définir plusieurs traitements d'intent, chacun avec son propre ensemble de paramètres recommandés. Google sélectionne le traitement approprié en fonction des paramètres "capability" identifiés à partir de la requête de l'utilisateur et de ceux déclarés dans un intent.

Par exemple, l'intent actions.intent.START_EXERCISE recommande que votre application gère le paramètre d'intent intégré exercise.name, mais vous pouvez implémenter l'intent intégré dans votre application sans aucun paramètre. Cela peut vous être utile si vous souhaitez gérer les requêtes des utilisateurs sans le nom d'exercice spécifique, par exemple "Ask Example App to start TrackingExercise".

L'extrait de code suivant utilise un traitement de remplacement sans paramètres obligatoires si les paramètres ne sont pas inclus dans la requête de l'utilisateur:

<?xml version="1.0" encoding="utf-8"?>
<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:targetClass="com.example.myapplication.Activity1"
            android:targetPackage="com.example.myapplication">
            <parameter
                android:name="exercise.name"
                android:key="exerciseType"
                android:required="true"
                />
        </intent>
        <intent
            android:action="android.intent.action.VIEW"
            android:targetClass="com.example.myapplication.Activity2">
        </intent>
    </capability>
</shortcuts>

L'Assistant Google s'efforce de fournir les informations les plus pertinentes à l'utilisateur lorsqu'il renvoie des valeurs de paramètre à votre application. Par exemple, les requêtes utilisateur pour commander une pizza dans l'application mobile d'Example Restaurant n'incluent pas toujours un lieu. Pour mieux répondre aux besoins de l'utilisateur, l'Assistant peut fournir à cette application les valeurs de latitude et de longitude du restaurant "Example" le plus proche.

Autre exigence supplémentaire : votre application ne doit pas effectuer directement une action qui modifie l'état réel d'un utilisateur (par exemple, transférer de l'argent, passer une commande ou envoyer un message) sans avoir préalablement confirmé l'action à l'utilisateur.

Clarification

Les arguments transmis à votre application via <url-parameter> ou les extras d'intent peuvent ne pas identifier de manière unique l'élément que vous souhaitez présenter à l'utilisateur. Dans ce cas, utilisez la valeur de l'argument comme argument de recherche et redirigez l'utilisateur vers la page de recherche de l'application. Il peut ainsi faire la distinction et choisir l'élément approprié.

Par exemple, si la requête d'un utilisateur est "Commander chez Example Restaurant" pour l'intent intégré ORDER_MENU_ITEM, vous pouvez lui présenter une liste de restaurants dont les noms correspondent au terme "Example Restaurant".

Prise en charge des langues et paramètres régionaux

Les paramètres régionaux pris en charge pour le développement et les tests par chaque intent intégré d'action dans l'application sont répertoriés dans la documentation de référence sur les intents intégrés. Certains intents intégrés prennent en charge des paramètres régionaux différents pour les tests par les développeurs et pour le déclenchement par l'utilisateur depuis l'Assistant.