Esegui il push delle scorciatoie dinamiche all'assistente

Le scorciatoie Android offrono agli utenti una rapida metodi per eseguire un'azione o accedere ai contenuti in un'app. L'assistente può suggerire in modo proattivo le tue scorciatoie dinamiche Android agli utenti di pertinenti, consentendo agli utenti di scoprire e riprodurre facilmente con funzionalità vocale.

Ad esempio, puoi eseguire il push di una scorciatoia per ogni nota creata da un utente la tua app per prendere appunti. Tu fai link dinamici idonei alla visualizzazione sulle piattaforme Google, come l'assistente, aggiungendo la libreria Google Shortcuts Integration Jetpack al tuo progetto. Questa libreria consente all'assistente di acquisire le scorciatoie dinamiche che invii utilizzando ShortcutManagerCompat, che è un wrapper Jetpack per il API ShortcutManager.

Quando utilizzi la libreria Google Shortcuts Integration nella tua app, gli annunci dinamici le scorciatoie che invii a Google sono visibili agli utenti come suggerimenti di scorciatoie vocali nell'app dell'assistente. Puoi trasferire un numero illimitato di scorciatoie dinamiche utilizzando il metodo pushDynamicShortcut() della ShortcutManagerCompat nella raccolta.

Configura il progetto di sviluppo

Per aggiungere la funzionalità delle scorciatoie dinamiche alla tua app è necessario La libreria Google Shortcuts Integration, ovvero una libreria Android Jetpack, Questa sezione descrive come configurare il progetto di sviluppo dell'app in modo da includere in questa libreria.

Per aggiungere questa libreria Jetpack e configurare il tuo progetto, segui questi passaggi:

  1. Aggiorna il file gradle.properties per gestire le librerie Jetpack:

    gradle.properties

    android.useAndroidX=true
    # Automatically convert third-party libraries to use AndroidX
    android.enableJetifier=true
    
  2. Aggiungi le dipendenze della libreria Jetpack a build.gradle:

    app/build.gradle

    dependencies {
     implementation "androidx.core:core:1.6.0"
     implementation "androidx.core:core-google-shortcuts:1.0.1"
     ...
    }
    

    Nel codice campione precedente, elenca due librerie Jetpack come delle dipendenze. La libreria androidx.core:core:1.6.0 contiene Classe ShortcutManagerCompat, che utilizzi per trasferire le scorciatoie dinamiche a in tutti i canali Google.

    Il androidx.core:core-google-shortcuts:1.0.1 è il team di Libreria di integrazione delle scorciatoie. Questa raccolta non contiene contenuti rivolti agli sviluppatori tramite Google Cloud CLI o tramite l'API Compute Engine. Aggiungendola come dipendenza, consenti all'assistente di acquisire scorciatoie dinamiche che invii utilizzando la classe ShortcutManagerCompat.

Trasferisci scorciatoie dinamiche

Per trasferire le scorciatoie dinamiche idonee per la visualizzazione sull'assistente: devi prima creare la scorciatoia usando l'ShortcutInfoCompat.Builder() .

Successivamente, premi la scorciatoia utilizzando ShortcutManagerCompat.pushDynamicShortcut(). Viene eseguito il push delle scorciatoie Ogni volta che un utente completa un'azione pertinente nella tua app. Il seguente esempio esegue il push di una scorciatoia ogni volta che un utente effettua un ordine in un'app per la consegna di cibo a domicilio:

AttivitàOrdineEsempio

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);

Il id a cui viene fatto riferimento nel metodo ShortcutInfoCompat.Builder nella precedente il codice di esempio definisce il shortcutId dell'oggetto scorciatoia risultante. Questo id deve essere un valore letterale di stringa univoco. Per maggiori dettagli, consulta Documentazione sulle scorciatoie Android.

Nell'esempio precedente, il metodo addCapabilityBinding associa la colonna dinamica scorciatoia per un capability dello stesso android:name definito in shortcuts.xml. Questo metodo ti consente di associare la scorciatoia a un parametro semantico intent integrato (BII).

A volte le scorciatoie dinamiche vengono inviate tramite push senza un particolare parametro dell'intent integrato dell'associazione. Quando viene richiamato dall'utente, l'assistente attiva il criterio intent definito nella scorciatoia per compiere l'azione. L'esempio seguente mostra un modello scorciatoia senza associazione di parametri:

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);

Prova le scorciatoie dinamiche con l'assistente

Quando l'Assistente Google acquisisce correttamente una scorciatoia dinamica dal tuo la scorciatoia può essere visualizzata come suggerimento di scorciatoia vocale nella App Assistente per Android. L'app Assistente suggerisce le scorciatoie più recenti inviati dalla tua app.

Per testare le scorciatoie dinamiche con l'assistente, svolgi i seguenti passaggi:

  1. Crea un'anteprima delle Azioni app e prepara il dispositivo di test o per testare le azioni seguendo lo stesso di configurazione richiesti per il plug-in dell'Assistente Google.
  2. Apri l'app e definisci una scorciatoia dinamica per il push. Quindi completa un'azione. Ad esempio, se premi una scorciatoia ogni volta che nota viene creata nell'app per la creazione di note, quindi crea una nuova nota.
  3. Apri l'opzione Scorciatoie nell'app Impostazioni assistente sul tuo dispositivo. Il tuo la scorciatoia dinamica viene visualizzata nell'elenco per la tua app.