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 przekazać skrót do każdej notatki utworzonej przez użytkownika aplikację do robienia notatek. Twoje produkty linki dynamiczne, które mogą się wyświetlać w usługach Google takich jak Asystent, dodając do projektu bibliotekę Jetpack do integracji Google Skróty. 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 używasz w aplikacji biblioteki integracji skrótów Google, dynamiczne skróty przesłane do Google są widoczne dla użytkowników jako sugestie skrótów głosowych w aplikacji Asystent. Możesz przekazać nieograniczoną liczbę dynamicznych skrótów do za pomocą metody pushDynamicShortcut() funkcji Biblioteka ShortcutManagerCompat.

Skonfiguruj projekt programistyczny

Dodanie funkcji skrótów dynamicznych do aplikacji wymaga: Biblioteka integracji skrótów Google, która jest biblioteką Androida Jetpack. W tej sekcji dowiesz się, jak skonfigurować projekt programisty aplikacji, aby uwzględnić 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 zależności biblioteki Jetpack do pakietu build.gradle:

    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 podajesz 2 biblioteki Jetpack jako zależności. 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 Google Biblioteka integracji skrótów. Ta biblioteka nie zawiera treści przeznaczonych dla programistów API. Dodając ją jako zależność, umożliwiasz Asystentowi dynamiczne skróty przekazywane za pomocą klasy ShortcutManagerCompat.

Przekaż skróty dynamiczne

Aby przekazać skróty dynamiczne, które mogą się wyświetlać w Asystencie: najpierw tworzysz skrót za pomocą funkcji ShortcutInfoCompat.Builder() zajęcia.

Następnie naciśnij skrót za pomocą Metoda 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 składa zamówienie w aplikacji umożliwiającej zamawianie jedzenia, kod powoduje naciśnięcie skrótu:

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

Wartość id, do której odwołuje się metoda ShortcutInfoCompat.Builder w poprzednim przykładowy kod definiuje obiekt shortcutId powstałego w ten sposób obiektu skrótu. To urządzenie (id) musi być unikalnym literałem ciągu. Więcej informacji: Dokumentacja skrótów na Androida.

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

Skróty dynamiczne czasami są przekazywane bez żadnego konkretnego parametru BII z osobna. Po wywołaniu przez użytkownika Asystent aktywuje zdefiniowaną intent aby wykonać działanie. W poniższym przykładzie pokazano, jak skrót bez powiązania parametrów:

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

Testowanie skrótów dynamicznych 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ć skróty dynamiczne za pomocą Asystenta, wykonaj te czynności:

  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 naciśniesz skrót za każdym razem, gdy zostanie utworzona w aplikacji do robienia notatek, a następnie 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.