Skróty na Androida zapewniają użytkownikom szybkie metody wykonywania działań lub uzyskiwania dostępu do treści w aplikacji. Asystent może w odpowiednich momentach proaktywnie proponować użytkownikom dynamiczne skróty na Androida, co ułatwia użytkownikom odkrywanie i odtwarzanie funkcji obsługiwanych głosowych.
Możesz na przykład nacisnąć skrót do każdej notatki utworzonej przez użytkownika w aplikacji do robienia notatek. Aby umożliwić wyświetlanie linków dynamicznych w usługach Google takich jak Asystent, dodaj do projektu bibliotekę Google Skróty Integration Jetpack.
Ta biblioteka umożliwia Asystentowi przyjmowanie dynamicznych skrótów, które przekazujesz za pomocą klasy ShortcutManagerCompat
, która jest otoką Jetpack dla interfejsu API ShortcutManager
.
Gdy w aplikacji korzystasz z biblioteki integracji skrótów Google, dynamiczne skróty przekazywane do Google są widoczne dla użytkowników jako sugestie skrótów głosowych w aplikacji Asystent. Możesz przekazać nieograniczoną liczbę skrótów dynamicznych do Asystenta, korzystając z metody pushDynamicShortcut()
w bibliotece ShortcutManagerCompat
.
Konfigurowanie projektu programistycznego
Dodanie funkcji dynamicznych skrótów do aplikacji wymaga biblioteki integracji skrótów Google – biblioteki Android Jetpack. Z tej sekcji dowiesz się, jak skonfigurować projekt tak, aby zawierał tę bibliotekę.
Aby dodać tę bibliotekę Jetpack i skonfigurować projekt, wykonaj te czynności:
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
Dodaj zależności biblioteki Jetpack do
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 wymieniono 2 biblioteki Jetpack jako zależności. Biblioteka
androidx.core:core:1.6.0
zawiera klasęShortcutManagerCompat
, której używasz do przekazywania skrótów dynamicznych do Google.androidx.core:core-google-shortcuts:1.0.1
to biblioteka integracji skrótów Google. Ta biblioteka nie zawiera interfejsu API dla programistów. Dodając je jako zależność, umożliwiasz Asystentowi korzystanie z dynamicznych skrótów, które przekazujesz za pomocą klasyShortcutManagerCompat
.
Skróty dynamiczne push
Aby przekazywać skróty dynamiczne, które mogą się wyświetlać w Asystencie, najpierw utwórz skrót za pomocą klasy ShortcutInfoCompat.Builder()
.
Następnie wypchniesz skrót za pomocą metody ShortcutManagerCompat.pushDynamicShortcut()
. Skróty są przekazywane, gdy użytkownik wykona odpowiednie działanie w aplikacji. Ten przykładowy kod powoduje naciśnięcie skrótu za każdym razem, gdy użytkownik złoży zamówienie w aplikacji umożliwiającej zamawianie jedzenia:
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);
Element id
, do którego odwołuje się metoda ShortcutInfoCompat.Builder
w poprzednim przykładowym kodzie, definiuje shortcutId
wynikowego obiektu skrótu. Ten element id
musi być unikalnym literałem ciągu znaków. Szczegółowe informacje znajdziesz w dokumentacji skrótów na Androidzie.
W poprzednim przykładzie metoda addCapabilityBinding
wiąże skrót dynamiczny z elementem capability
o takim samym atrybucie android:name
określonym w tagu shortcuts.xml
. Ta metoda umożliwia powiązanie skrótu z semantycznym parametrem intencji wbudowanej (BII).
Czasami skróty dynamiczne są przekazywane bez żadnego konkretnego powiązania parametru BII. Po wywołaniu przez użytkownika Asystent wywołuje określony w skrótie skrót intent
, aby wykonać działanie. Ten przykład przedstawia skrót dynamiczny 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 pobierze skrót dynamiczny z aplikacji, skrót może pojawić się jako sugestia skrótu głosowego w aplikacji Asystent na Androida. Aplikacja Asystent podpowiada najnowsze skróty przekazane przez Twoją aplikację.
Aby przetestować skróty dynamiczne za pomocą Asystenta, wykonaj te czynności:
- Utwórz podgląd akcji w aplikacji i przygotuj urządzenie testowe lub emulator do działań testowych, postępując zgodnie z tymi samymi wymaganiami dotyczącymi konfiguracji, co w przypadku wtyczki Asystenta Google.
- Otwórz aplikację i określ dynamiczny skrót do push. Następnie wykonaj działanie. Jeśli na przykład naciśniesz skrót za każdym razem, gdy w aplikacji do robienia notatek zostanie utworzona notatka,
- Otwórz Skróty w Ustawieniach Asystenta na urządzeniu. Skrót dynamiczny pojawi się na liście aplikacji.