Dynamische Verknüpfungen an Assistant senden

Mit Android-Tastenkombinationen können Nutzer um in einer App eine Aktion auszuführen oder auf Inhalte zuzugreifen. Assistant kann Nutzern unter folgendem Link proaktiv deine dynamischen Verknüpfungen für Android vorschlagen: relevanten Zeiten angezeigt werden, sodass die Nutzer Ihre sprachgesteuerte Funktionen nutzen.

Sie können beispielsweise eine Verknüpfung für jede Notiz erstellen, die ein Nutzer in Ihre Notizen-App. Sie machen dynamische Links, die auf Google-Plattformen wie Assistant indem Sie Ihrem Projekt die Google Shortcuts Integration Jetpack-Bibliothek hinzufügen. Mit dieser Bibliothek kann Assistant dynamische Verknüpfungen übernehmen, die du über die ShortcutManagerCompat-Klasse, einem Jetpack-Wrapper für die ShortcutManager API verwenden.

Wenn du die Google Shortcuts Integration Library in deiner App verwendest, werden dynamische Verknüpfungen, die du an Google sendest, sind für Nutzer als Vorschläge für Sprachverknüpfungen sichtbar in der Assistant App. Sie können beliebig viele dynamische Tastenkürzel Assistant, der die Methode pushDynamicShortcut() der ShortcutManagerCompat.

Entwicklungsprojekt konfigurieren

Für das Hinzufügen dynamischer Verknüpfungen zu deiner App ist die Google Shortcuts Integration Library, eine Android Jetpack-Bibliothek. In diesem Abschnitt wird beschrieben, wie Sie Ihr App-Entwicklungsprojekt so konfigurieren, dass es Folgendes enthält: für diese Bibliothek.

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

  1. Aktualisieren Sie die Datei gradle.properties so, dass Jetpack-Bibliotheken verarbeitet werden:

    gradle.properties

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

    app/build.gradle

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

    Im obigen Beispielcode listen Sie zwei Jetpack-Bibliotheken auf: Abhängigkeiten. Die androidx.core:core:1.6.0-Bibliothek enthält die Klasse ShortcutManagerCompat, mit der Sie dynamische Verknüpfungen senden können Google.

    androidx.core:core-google-shortcuts:1.0.1 steht für Google Shortcuts Integration Library. Diese Bibliothek enthält keine für Entwickler der API erstellen. Wenn du sie als Abhängigkeit hinzufügst, kann Assistant dynamische Verknüpfungen, die Sie mit der Klasse ShortcutManagerCompat senden.

Dynamische Tastenkombinationen senden

So senden Sie dynamische Verknüpfungen, die in Assistant angezeigt werden können: erstellen Sie zuerst die Verknüpfung mit der ShortcutInfoCompat.Builder() .

Anschließend drücken Sie die Verknüpfung mithilfe der ShortcutManagerCompat.pushDynamicShortcut()-Methode. Verknüpfungen werden gedrückt Ein Nutzer führt eine relevante Aktion in Ihrer App aus. Im folgenden Beispiel bringt jedes Mal, wenn ein Nutzer eine Bestellung in einer Lieferservice-App aufgibt, eine Verknüpfung:

ExampleOrderActivity

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 Schritt in der Methode ShortcutInfoCompat.Builder verwiesen wird Im Beispielcode wird die shortcutId des resultierenden Verknüpfungsobjekts definiert. Dieses id muss ein eindeutiges Stringliteral sein. Weitere Informationen finden Sie in der Dokumentation zu Android-Verknüpfungen

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

Dynamische Verknüpfungen werden manchmal ohne einen bestimmten BII-Parameter gesendet Verknüpfung. Wenn Assistant vom Nutzer aufgerufen wird, löst er das festgelegte intent aus in der Tastenkombination ein, um die Aktion auszuführen. Das folgende Beispiel zeigt eine dynamische Tastenkombination 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 Verknüpfungen mit Assistant testen

Wenn Google Assistant eine dynamische Verknüpfung von Ihrem kann die Verknüpfung als Vorschlag für Sprachkürzel in der Assistant-App für Android. Die Assistant App schlägt die neuesten Kurzbefehle vor die von Ihrer App bereitgestellt werden.

So testen Sie dynamische Verknüpfungen mit Assistant:

  1. Erstelle eine Vorschau deiner App Actions und bereite dein Testgerät oder Emulator für das Testen von Aktionen. Einrichtungsanforderungen wie für das Google Assistant-Plug-in zu berücksichtigen.
  2. Öffne deine App und definiere eine dynamische Verknüpfung, die gesendet werden soll. Führen Sie dann eine Aktion aus. Wenn Sie z. B. immer dann eine Tastenkombination drücken, Notiz wird in Ihrer Notizen-App erstellt und anschließend eine neue erstellt.
  3. Öffne auf deinem Gerät in der App Assistant-Einstellungen die Option Verknüpfungen. Ihr dynamische Verknüpfung in der Liste für Ihre App angezeigt.