Les raccourcis Android fournissent aux utilisateurs des méthodes rapides pour effectuer une action ou accéder au contenu d'une application. L'Assistant peut suggérer de manière proactive vos raccourcis dynamiques Android aux utilisateurs au moment opportun, leur permettant ainsi de découvrir et de revoir facilement votre fonctionnalité à commande vocale.
Par exemple, vous pouvez envoyer un raccourci pour chaque note créée par un utilisateur dans votre application de prise de notes. Pour rendre des liens dynamiques éligibles à l'affichage sur les surfaces Google, comme l'Assistant, ajoutez la bibliothèque Jetpack d'intégration des raccourcis Google à votre projet.
Cette bibliothèque permet à l'Assistant d'utiliser les raccourcis dynamiques que vous transmettez à l'aide de la classe ShortcutManagerCompat
, qui est un wrapper Jetpack pour l'API ShortcutManager
.
Lorsque vous utilisez la bibliothèque d'intégration des raccourcis Google dans votre application, les raccourcis dynamiques que vous transmettez à Google sont visibles par les utilisateurs en tant que suggestions de raccourcis vocaux dans l'application Assistant. Vous pouvez envoyer un nombre illimité de raccourcis dynamiques à l'Assistant à l'aide de la méthode pushDynamicShortcut()
de la bibliothèque ShortcutManagerCompat
.
Configurer votre projet de développement
Pour ajouter une fonctionnalité de raccourcis dynamiques à votre application, vous devez utiliser la bibliothèque d'intégration des raccourcis Google, qui est une bibliothèque Android Jetpack. Cette section explique comment configurer votre projet de développement d'applications pour inclure cette bibliothèque.
Pour ajouter cette bibliothèque Jetpack et configurer votre projet, procédez comme suit :
Mettez à jour votre fichier
gradle.properties
pour gérer les bibliothèques Jetpack :gradle.properties
android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true
Ajoutez les dépendances de la bibliothèque Jetpack à votre
build.gradle
:app/build.gradle
dependencies { implementation "androidx.core:core:1.6.0" implementation "androidx.core:core-google-shortcuts:1.0.1" ... }
Dans l'exemple de code précédent, vous répertoriez deux bibliothèques Jetpack en tant que dépendances. La bibliothèque
androidx.core:core:1.6.0
contient la classeShortcutManagerCompat
, que vous utilisez pour transmettre des raccourcis dynamiques à Google.androidx.core:core-google-shortcuts:1.0.1
est la bibliothèque d'intégration de raccourcis Google. Cette bibliothèque ne contient aucune API destinée aux développeurs. En l'ajoutant en tant que dépendance, vous autorisez l'Assistant à intégrer les raccourcis dynamiques que vous transmettez à l'aide de la classeShortcutManagerCompat
.
Transférer des raccourcis dynamiques
Pour transférer des raccourcis dynamiques pouvant s'afficher dans l'Assistant, vous devez d'abord créer le raccourci à l'aide de la classe ShortcutInfoCompat.Builder()
.
Vous transmettez ensuite le raccourci à l'aide de la méthode ShortcutManagerCompat.pushDynamicShortcut()
. Les raccourcis sont envoyés chaque fois qu'un utilisateur effectue une action pertinente dans votre application. L'exemple de code suivant envoie un raccourci chaque fois qu'un utilisateur passe une commande dans une application de livraison de repas:
Exemple d'appli de livraison
Kotlin
// Define the dynamic shortcut for a menu item var intent = Intent(context, DisplayOrderActivity::class.java) intent.action = Intent.ACTION_VIEW var shortcutInfo = ShortcutInfoCompat.Builder(context, id) .setShortLabel("Cappuccino") .setLongLabel("Order another cappuccino") .addCapabilityBinding( "actions.intent.ORDER_MENU_ITEM", "menuItem.name", Arrays.asList("cappuccino") ) .setIntent(intent) // Push the shortcut .build() // Push the shortcut ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo)
Java
// Define the dynamic shortcut for a menu item Intent intent = new Intent(context, DisplayOrderActivity.class); intent.setAction(Intent.ACTION_VIEW); ShortcutInfoCompat.Builder shortcutInfo = new ShortcutInfoCompat.Builder(context, id) .setShortLabel("Cappuccino") .setLongLabel("Order another cappuccino") .addCapabilityBinding( "actions.intent.ORDER_MENU_ITEM", "menuItem.name", Arrays.asList("cappuccino")) .setIntent(intent) .build(); // Push the shortcut ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);
L'élément id
référencé dans la méthode ShortcutInfoCompat.Builder
de l'exemple de code précédent définit l'shortcutId
de l'objet de raccourci obtenu. Ce id
doit être un littéral de chaîne unique. Pour en savoir plus, consultez la documentation sur les raccourcis Android.
Dans l'exemple précédent, la méthode addCapabilityBinding
lie le raccourci dynamique à un élément capability
du même élément android:name
défini dans shortcuts.xml
. Cette méthode vous permet d'associer le raccourci à un paramètre sémantique d'intent intégré.
Les raccourcis dynamiques sont parfois transmis sans association de paramètre d'intent intégré spécifique. Lorsqu'il est appelé par l'utilisateur, l'Assistant déclenche l'action intent
définie dans le raccourci pour exécuter l'action. L'exemple suivant illustre un raccourci dynamique sans association de paramètres :
Kotlin
var intent: Intent = Intent(context, DisplayOrderActivity::class.java) intent.setPackage(this, "com.sample.app") intent.setAction(Intent.ACTION_VIEW) var shortcutInfo: ShortcutInfoCompat = ShortcutInfoCompat.Builder(context, id) .setShortLabel("Order coffee") .setLongLabel("Order a cup of coffee") .addCapabilityBinding("actions.intent.ORDER_MENU_ITEM") .setIntent(intent) .build() ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);
Java
Intent intent = new Intent(context, DisplayOrderActivity.class); intent.setPackage(this, "com.sample.app"); intent.setAction(Intent.ACTION_VIEW); ShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(context, id) .setShortLabel("Order coffee") .setLongLabel("Order a cup of coffee") .addCapabilityBinding("actions.intent.ORDER_MENU_ITEM") .setIntent(intent) .build(); ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);
Tester les raccourcis dynamiques avec l'Assistant
Lorsque l'Assistant Google accepte un raccourci dynamique de votre application, le raccourci peut s'afficher en tant que suggestion de raccourci vocal dans l'application Android Assistant. L'application Assistant suggère les raccourcis les plus récents transmis par votre application.
Pour tester vos raccourcis dynamiques avec l'Assistant, procédez comme suit :
- Créez un aperçu des actions dans votre application et préparez votre appareil de test ou votre émulateur pour les actions de test en respectant les mêmes exigences de configuration que le plug-in Assistant Google.
- Ouvrez votre application et définissez un raccourci dynamique à transférer. Effectuez ensuite une action. Par exemple, si vous utilisez un raccourci chaque fois qu'une note est créée dans votre application de prise de notes, créez une note.
- Ouvrez les Raccourcis dans l'application Paramètres de l'Assistant de votre appareil. Votre raccourci dynamique s'affiche dans la liste de votre application.