Przekazywanie skrótów dynamicznych do Asystenta

Skróty na Androidzie zapewniają użytkownikom szybkie do wykonania działania lub uzyskania dostępu do treści w aplikacji. Asystent może proaktywnie sugerować użytkownikom dynamiczne skróty na Androidzie w domenie: odpowiednie momenty, dzięki czemu użytkownicy mogą łatwo funkcje głosowe.

Możesz na przykład przesłać skrót do każdej notatki utworzonej przez użytkownika w Twojej aplikacji do tworzenia notatek. Aby umożliwić wyświetlanie dynamicznych linków w usługach Google, takich jak Asystent, dodaj do projektu bibliotekę Jetpacka do integracji skrótów Google. Ta biblioteka pozwala Asystentowi korzystać z dynamicznych skrótów klawiszowych przekazywanych przez Ciebie za pomocą ShortcutManagerCompat, która jest otoką pakietu Jetpack dla Interfejs API ShortcutManager.

Jeśli w swojej aplikacji używasz biblioteki Google Shortcuts Integration, dynamiczne skróty wysyłane do Google są widoczne dla użytkowników jako sugestie skrótów głosowych w aplikacji Asystent. Możesz wysyłać do Asystenta nieograniczoną liczbę dynamicznych skrótów za pomocą metody pushDynamicShortcut() biblioteki ShortcutManagerCompat.

Skonfiguruj projekt programistyczny

Dodanie do aplikacji funkcji dynamicznych skrótów wymaga biblioteki Google Shortcuts Integration, która jest biblioteką Jetpacka na Androida. Z tej sekcji dowiesz się, jak skonfigurować projekt tworzenia aplikacji, aby uwzględniał tę bibliotekę.

Aby dodać tę bibliotekę Jetpack i skonfigurować projekt, wykonaj te czynności:

  1. Zaktualizuj plik gradle.properties, aby obsługiwać biblioteki Jetpack:

    gradle.properties

    android.useAndroidX=true
    # Automatically convert third-party libraries to use AndroidX
    android.enableJetifier=true
    
  2. Dodaj do build.gradle zależności biblioteki Jetpack:

    app/build.gradle

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

    W poprzednim przykładowym kodzie jako zależności wymieniono 2 biblioteki Jetpacka. Biblioteka androidx.core:core:1.6.0 zawiera funkcje ShortcutManagerCompat, do której służą skróty dynamiczne Google.

    androidx.core:core-google-shortcuts:1.0.1 to biblioteka integracji z Google Shortcuts. Ta biblioteka nie zawiera interfejsu API dla programistów. Dodanie go jako elementu zależnego umożliwia Asystentowi korzystanie z dynamicznych skrótów przesyłanych za pomocą klasy ShortcutManagerCompat.

Przekaż skróty dynamiczne

Aby przesłać dynamiczne skróty, które można wyświetlać w Asystencie, najpierw utwórz skrót za pomocą klasy ShortcutInfoCompat.Builder().

Następnie publikujesz skrót, używając metody ShortcutManagerCompat.pushDynamicShortcut(). Skróty zostały przekazane za każdym razem, gdy użytkownik wykona odpowiednie działanie w Twojej aplikacji. Następująca próbka za każdym razem, gdy użytkownik utworzy listę w aplikacji do obsługi notatek i list.

ExampleOrderActivity

Kotlin

// Define the dynamic shortcut for an item
var intent = Intent(context, DisplayOrderActivity::class.java)
intent.action = Intent.ACTION_VIEW
var shortcutInfo = ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Running")
    .setLongLabel("Start running")
    .addCapabilityBinding(
        "actions.intent.CREATE_ITEM_LIST", "itemList.name", Arrays.asList("My First List")
    )
    .setIntent(intent) // Push the shortcut
    .build()

// Push the shortcut
ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo)

Java

// Define the dynamic shortcut for an item
Intent intent = new Intent(context, DisplayOrderActivity.class);
intent.setAction(Intent.ACTION_VIEW);

ShortcutInfoCompat.Builder shortcutInfo = new ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Running")
    .setLongLabel("Start running")
    .addCapabilityBinding(
      "actions.intent.CREATE_ITEM_LIST", "itemList.name", Arrays.asList("My First List"))
    .setIntent(intent)
    .build();

// Push the shortcut
ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);

Argument id, do którego odwołuje się metoda ShortcutInfoCompat.Builder w poprzednim przykładowym kodzie, definiuje shortcutId obiektu skrótu. Wartość id musi być unikalnym ciągiem znaków. Szczegółowe informacje znajdziesz w dokumentacji skrótów na urządzeniach z Androidem.

W poprzednim przykładzie metoda addCapabilityBinding łączy kreację dynamiczną skrót do elementu capability o wartości android:name zdefiniowanej w shortcuts.xml Ta metoda pozwala powiązać skrót z semantyczny parametr intencji wbudowanej (BII).

Dynamiczne skróty są czasami przesyłane bez żadnego konkretnego powiązania z parametrami BII. Gdy użytkownik wywoła Asystenta, ten uruchamia intent zdefiniowany w skrótku, aby wykonać działanie. Ten przykład przedstawia skrót dynamiczny bez powiązania z parametrem:

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("Create a list")
    .setLongLabel("Create a list")
    .addCapabilityBinding("actions.intent.CREATE_ITEM_LIST")
    .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("Create a list")
  .setLongLabel("Create a list")
  .addCapabilityBinding("actions.intent.CREATE_ITEM_LIST")
  .setIntent(intent)
  .build();

ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);

Testowanie dynamicznych skrótów za pomocą Asystenta

Gdy Asystent Google użyje dynamicznego skrótu z Twojego aplikacji, skrót może pojawiać się jako sugestia Skrótu głosowego w Aplikacja Asystent na Androida. Aplikacja Asystent proponuje najnowsze skróty wypchane przez Twoją aplikację.

Aby przetestować dynamiczne skróty w Asystencie:

  1. utworzyć wersję podglądu działań w aplikacji i przygotować urządzenie testowe; emulatorowi do testowania działań, takich jak wtyczka Asystenta Google.
  2. Otwórz aplikację i zdefiniuj dynamiczny skrót do przekazania. Następnie wykonaj działanie. Jeśli na przykład chcesz, aby skrót był wykonywany za każdym razem, gdy w aplikacji do tworzenia notatek zostanie utworzona nowa notatka, utwórz nową notatkę.
  3. Otwórz Skróty w aplikacji Ustawienia Asystenta na urządzeniu. Twoje dynamiczny skrót pojawi się na liście aplikacji.