Dynamische Verknüpfungen an Assistant senden

Android-Verknüpfungen bieten Nutzern schnelle Methoden, eine Aktion auszuführen oder auf Inhalte in einer App zuzugreifen. Assistant kann Nutzern Ihre dynamischen Android-Verknüpfungen zu bestimmten Zeiten vorschlagen, sodass Nutzer Ihre sprachgesteuerten Funktionen leicht finden und wiedergeben können.

Du kannst beispielsweise für jede Notiz, die ein Nutzer in deiner Notizen-App erstellt, eine Verknüpfung erstellen. Um dynamische Links auf Google-Oberflächen wie Assistant anzeigen zu lassen, musst du deinem Projekt die Google Shortcuts Integration Jetpack-Bibliothek hinzufügen. Mit dieser Bibliothek kann Assistant dynamische Tastenkombinationen übernehmen, die Sie mit der Klasse ShortcutManagerCompat übertragen. Dabei handelt es sich um einen Jetpack-Wrapper für die ShortcutManager API.

Wenn Sie die Bibliothek zur Integration von Google-Verknüpfungen in Ihrer App verwenden, sind dynamische Verknüpfungen, die Sie an Google senden, für Nutzer als Vorschläge für Sprachverknüpfungen in der Assistant App sichtbar. Sie können über die Methode pushDynamicShortcut() der ShortcutManagerCompat-Bibliothek eine unbegrenzte Anzahl von dynamischen Verknüpfungen an Assistant senden.

Entwicklungsprojekt konfigurieren

Wenn Sie Ihrer App dynamische Tastenkombinationen hinzufügen möchten, benötigen Sie die Google-Verknüpfungsbibliothek, die eine Android Jetpack-Bibliothek ist. In diesem Abschnitt wird beschrieben, wie Sie Ihr App-Entwicklungsprojekt konfigurieren, um diese Bibliothek einzubeziehen.

So fügen Sie diese Jetpack-Bibliothek hinzu und konfigurieren Ihr Projekt:

  1. Aktualisieren Sie die Datei gradle.properties für die Verarbeitung von Jetpack-Bibliotheken:

    gradle.properties:

    android.useAndroidX=true
    # Automatically convert third-party libraries to use AndroidX
    android.enableJetifier=true
    
  2. Fügen Sie Ihrem build.gradle die Abhängigkeiten der Jetpack-Bibliothek hinzu:

    app/build.gradle

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

    Im vorherigen Beispielcode werden zwei Jetpack-Bibliotheken als Abhängigkeiten aufgelistet. Die androidx.core:core:1.6.0-Bibliothek enthält die ShortcutManagerCompat-Klasse, mit der Sie dynamische Verknüpfungen an Google senden.

    androidx.core:core-google-shortcuts:1.0.1 ist die Integrationsbibliothek von Google. Diese Bibliothek enthält keine entwicklerseitige API. Wenn Sie sie als Abhängigkeit hinzufügen, kann Assistant die dynamischen Tastenkombinationen übernehmen, die Sie mit der Klasse ShortcutManagerCompat übertragen.

Tastenkombinationen für dynamische Push-Benachrichtigungen

Um dynamische Tastenkombinationen zu verwenden, die in Assistant angezeigt werden können, musst du die Verknüpfung zuerst mithilfe der Klasse ShortcutInfoCompat.Builder() erstellen.

Übernehmen Sie die Verknüpfung dann mit der Methode ShortcutManagerCompat.pushDynamicShortcut(). Verknüpfungen werden immer dann gesendet, wenn ein Nutzer eine relevante Aktion in Ihrer App ausführt. Mit dem folgenden Beispielcode wird jedes Mal, wenn ein Nutzer eine Bestellung in einer Essenslieferdienst-App aufgibt, eine Verknüpfung erstellt:

BeispielOrderActivity

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

Die id, auf die im vorherigen Beispielcode in der Methode ShortcutInfoCompat.Builder verwiesen wird, definiert die shortcutId des resultierenden Verknüpfungsobjekts. id muss ein eindeutiges Stringliteral sein. Weitere Informationen finden Sie in der Dokumentation zu Android-Verknüpfungen.

Im vorherigen Beispiel bindet die Methode addCapabilityBinding die dynamische Verknüpfung mit einem capability derselben android:name, die in shortcuts.xml definiert ist. Mit dieser Methode können Sie die Verknüpfung mit einem semantischen integrierten Intent-Parameter (BII) verknüpfen.

Dynamische Verknüpfungen werden manchmal ohne bestimmte Verknüpfung mit BII-Parametern übertragen. Wenn Assistant vom Nutzer aufgerufen wird, löst Assistant die in der Verknüpfung definierte intent aus, um die Aktion auszuführen. Das folgende Beispiel zeigt eine dynamische Verknüpfung ohne Parameterverknüpfung:

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

Dynamische Tastenkombinationen mit Assistant testen

Wenn Google Assistant eine dynamische Verknüpfung aus deiner App übernimmt, kann diese in der Assistant-App für Android als Vorschlag für Sprachverknüpfungen angezeigt werden. Die Assistant-App schlägt die zuletzt von deiner App gesendeten Verknüpfungen vor.

So testen Sie Ihre dynamischen Tastenkombinationen mit Assistant:

  1. Erstellen Sie eine Vorschau Ihrer App Actions und bereiten Sie Ihr Testgerät oder Ihren Emulator für Testaktionen vor. Befolgen Sie dabei dieselben Einrichtungsanforderungen wie für das Google Assistant-Plug-in.
  2. Öffnen Sie die App und legen Sie eine dynamische Tastenkombination fest, die gesendet werden soll. Führen Sie dann eine Aktion aus. Wenn Sie beispielsweise jedes Mal eine Verknüpfung erstellen, wenn eine Notiz in Ihrer Notizen-App erstellt wird, müssen Sie eine neue Notiz erstellen.
  3. Öffnen Sie auf Ihrem Gerät in der App Assistant-Einstellungen die Option Verknüpfungen. Die dynamische Verknüpfung wird in der Liste für Ihre Anwendung angezeigt.