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:
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 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 funkcjeShortcutManagerCompat
, 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ą klasyShortcutManagerCompat
.
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:
- utworzyć wersję podglądu działań w aplikacji i przygotować urządzenie testowe; emulatorowi do testowania działań, takich jak wtyczka Asystenta Google.
- 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ę.
- Otwórz Skróty w aplikacji Ustawienia Asystenta na urządzeniu. Twoje dynamiczny skrót pojawi się na liście aplikacji.