1. Omówienie
W pierwszym ćwiczeniu z programowania App Actions pokazaliśmy Ci, jak rozszerzyć Asystenta Google o przykładową aplikację fitness przez wdrożenie intencji wbudowanych (BII) z kategorii Zdrowie i fitness BII.
Akcje w aplikacji umożliwiają użytkownikom uruchamianie określonych funkcji bezpośrednio w aplikacji za pomocą Asystenta. Mogą na przykład powiedzieć „OK Google, uruchom uruchomienie w aplikacji PrzykładowaAplikacja”. Oprócz uruchamiania aplikacji Asystent może wyświetlać użytkownikowi interaktywny widżet Androida, aby realizować prośby o odpowiednie wskaźniki BII.
Co utworzysz
Z tego ćwiczenia w Codelabs dowiesz się, jak zwracać widżety Androida, aby spełniać prośby użytkowników Asystenta. Nauczysz się również:
- Parametry BII użytkownika w celu spersonalizowania widżetów.
- Włącz funkcję zamiany tekstu na mowę w Asystencie w przypadku widżetów.
- Skorzystaj z dokumentu dotyczącego intencji wbudowanej, aby określić, które interfejsy BII obsługują realizację widżetów.
Wymagania wstępne
Zanim przejdziesz dalej, upewnij się, że Twoje środowisko programistyczne jest gotowe do tworzenia akcji w aplikacji. Powinien zawierać:
- Terminal do uruchamiania poleceń powłoki z zainstalowanym git.
- Najnowsza stabilna wersja Android Studio.
- Fizyczne lub wirtualne urządzenie z Androidem z dostępem do internetu.
- konto Google zalogowane w Android Studio oraz w aplikacji Google i Asystent Google.
Jeśli używasz urządzenia fizycznego, podłącz je do komputera lokalnego.
2. Jak to działa
Asystent Google wykorzystuje rozumienie języka naturalnego (NLU), aby odczytać prośbę użytkownika i dopasować ją do wbudowanej w Asystenta intencji (BII). Asystent mapuje intencję na funkcję (która implementuje BII), którą rejestrujesz dla tej intencji w aplikacji. Na koniec Asystent wykonuje prośbę użytkownika, wyświetlając widżet Androida generowany przez aplikację, wykorzystując informacje o tej funkcji.
W tym ćwiczeniu w Codelabs definiujesz funkcję, która rejestruje obsługę GET_EXERCISE_OBSERVATION
BII. W ramach tej funkcji otrzymujesz od Asystenta instrukcje generowania intencji Androida do klasy widżetu FitActions
w celu realizacji żądań tego BII. Aktualizujesz te zajęcia, aby wygenerować spersonalizowany widżet, który Asystent będzie mógł wyświetlać użytkownikowi, oraz wprowadzenie do odczytywania tekstu przez Asystenta.
Ten schemat przedstawia proces:
Widżet FitActions
Przykładowa aplikacja FitActions zawiera widżet z informacjami o treningu, który użytkownicy mogą dodać do ekranu głównego. Ten widżet doskonale nadaje się do realizowania zapytań użytkowników, które aktywują GET_EXERCISE_OBSERVATION
BII.
Jak działa widżet
Gdy użytkownik doda widżet do ekranu głównego, widżet pinguje urządzenie Odbiornik transmisji. Ta usługa pobiera informacje o widżecie z definicji odbiornika widżetu w zasobie AndroidManifest.xml
aplikacji. Na podstawie tych informacji generuje obiekt RemoteViews
reprezentujący widżet.
Przykładowa aplikacja definiuje odbiornik widgets.StatsWidgetProvider
, który odpowiada klasie StatsWidgetProvider
:
<!-- app/src/main/AndroidManifest.xml -->
<receiver
android:name=".widgets.StatsWidgetProvider"
android:exported="false">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/stats_widget" />
</receiver>
Klasa StatsWidgetProvider
(StatsWidgetProvider.kt
) zarządza procesami tworzenia obiektów StatsWidget
. Zajmuje się tymi obowiązkami:
- Tworzenie instancji widżetów i wypełnianie ich danymi ćwiczeń z bazy danych aplikacji.
- Formatowanie danych treningowych w celu zapewnienia ich czytelności. Opcja
formatDataAndSetWidget()
. - Jeśli dane treningowe są niedostępne, poda wartości domyślne za pomocą funkcji
setNoActivityDataWidget()
.
Dodaj pomoc Asystenta
W ramach tego ćwiczenia w Codelabs dowiesz się, jak zaktualizować przykładową aplikację, aby obsługiwała akcje w aplikacji. Są to między innymi:
- Konfiguruję możliwość zwrócenia instancji obiektu
StatsWidget
wGET_EXERCISE_OBSERVATION
BII. - zaktualizowanie klasy
StatsWidget
, aby umożliwić korzystanie z funkcji akcji w aplikacji, takich jak:- Użycie parametrów BII, które umożliwiają użytkownikom wyświetlanie konkretnych statystyk treningowych i pytanie „OK Google, pokaż moje statystyki biegowe w Przypadku aplikacji”.
- Podanie tekstu wprowadzenia do zamiany tekstu na mowę.
- Zarządzanie szczególnymi przypadkami, np. gdy zapytanie użytkownika nie zawiera parametru typu treningu.
3. Przygotowywanie środowiska programistycznego
Pobieranie plików podstawowych
Uruchom to polecenie, aby sklonować repozytorium GitHub przykładowej aplikacji:
git clone --branch start-widget-codelab https://github.com/actions-on-google/appactions-fitness-kotlin.git
Po sklonowaniu repozytorium wykonaj te czynności, aby otworzyć je w Android Studio:
- W oknie Witamy w Android Studio kliknij Importuj projekt.
- Znajdź i wybierz folder, do którego sklonowano repozytorium.
Aby zobaczyć wersję aplikacji reprezentującą ukończone ćwiczenia z programowania, skopiuj przykładowe repozytorium aplikacji za pomocą flagi --branch master
.
Aktualizowanie identyfikatora aplikacji na Androida
Aktualizowanie identyfikatora aplikacji jednoznacznie identyfikuje aplikację na urządzeniu testowym i unika „zduplikowanej nazwy pakietu”. występuje wtedy, gdy aplikacja została przesłana do Konsoli Play. Aby zaktualizować identyfikator aplikacji, otwórz app/build.gradle
:
android {
...
defaultConfig {
applicationId "com.MYUNIQUENAME.android.fitactions"
...
}
}
Zastąp „MYUNIQUENAME” w polu applicationId
.
Instalowanie wtyczki testowej
Wtyczka Asystent Google umożliwia testowanie akcji w aplikacji na urządzeniu testowym. Wysyłane informacje do Asystenta w aplikacji Google na urządzeniu z Androidem. Jeśli nie masz jeszcze tej wtyczki, zainstaluj ją, wykonując te czynności:
- Kliknij Plik > Ustawienia (Android Studio > Ustawienia w systemie macOS).
- W sekcji Wtyczki otwórz Marketplace i wyszukaj „Asystent Google”. Możesz też ręcznie pobrać i zainstalować narzędzie testowe.
- Zainstaluj narzędzie i uruchom ponownie Android Studio.
Testowanie aplikacji na urządzeniu
Przed wprowadzeniem kolejnych zmian w aplikacji warto zorientować się, jakie są jej możliwości.
Uruchom aplikację na urządzeniu testowym:
- W Android Studio wybierz urządzenie fizyczne lub wirtualne, a następnie kliknij Uruchom > Uruchom aplikację lub kliknij Uruchom na pasku narzędzi.
- Przytrzymaj przycisk ekranu głównego, aby skonfigurować Asystenta i sprawdzić, czy działa. Musisz zalogować się w Asystencie na swoim urządzeniu (chyba że masz to już za sobą).
Więcej informacji o urządzeniach wirtualnych z Androidem znajdziesz w artykule Tworzenie urządzeń wirtualnych i zarządzanie nimi.
Omów krótko aplikację, aby poznać jej możliwości. Aplikacja wstępnie wprowadza 10 ćwiczeń i wyświetla te informacje przy pierwszym widoku.
Wypróbuj istniejący widżet
- Kliknij przycisk Strona główna, by wyświetlić ekran główny urządzenia testowego.
- Przytrzymaj puste miejsce na ekranie głównym i wybierz Widżety.
- Przewiń w dół listę widżetów do sekcji FitActions.
- Naciśnij i przytrzymaj ikonę FitActions i umieść widżet na ekranie głównym.
4. Dodaj działanie w aplikacji
W tym kroku dodajesz możliwość GET_EXERCISE_OBSERVATION
BII. Aby to zrobić, dodaj nowy element capability
w tagu shortcuts.xml
. Ta funkcja określa, jak dana funkcja jest aktywowana, jak wykorzystywane są parametry BII i jakie intencje Androida mają wywoływać w celu realizacji żądania.
- Dodaj nowy element
capability
do zasobu przykładowego projektushortcuts.xml
z tą konfiguracją:
Zastąp wartość<!-- fitnessactions/app/src/main/res/xml/shortcuts.xml --> <capability android:name="actions.intent.GET_EXERCISE_OBSERVATION"> <app-widget android:identifier="GET_EXERCISE_OBSERVATION" android:targetClass="com.devrel.android.fitactions.widgets.StatsWidgetProvider" android:targetPackage="PUT_YOUR_APPLICATION_ID_HERE"> <parameter android:name="exerciseObservation.aboutExercise.name" android:key="aboutExerciseName" android:required="true"> </parameter> <extra android:name="hasTts" android:value="true"/> </app-widget> <!-- Add Fallback Intent--> </capability>
android:targetPackage
PUT_YOUR_APPLICATION_ID_HERE
, unikalnym identyfikatoremapplicationId
.
Ta funkcja mapuje obiekt BII GET_EXERCISE_OBSERVATION
na intencję app-widget
, dzięki czemu po aktywowaniu funkcji BII widżet tworzy instancję i wyświetla się użytkownikowi.
Przed uruchomieniem widżetu Asystent wyodrębnia z zapytania użytkownika obsługiwane parametry BII. To ćwiczenie w Codelabs wymaga parametru BII exerciseObservation.aboutExercise.name
, który reprezentuje typ ćwiczenia wybrany przez użytkownika. Aplikacja obsługuje trzy rodzaje ćwiczeń: bieganie, spacerowanie i jazda na rowerze. Dostarczasz wbudowany asortyment, aby poinformować Asystenta o tych obsługiwanych wartościach.
- Określ te elementy zasobów reklamowych, dodając tę konfigurację nad możliwością
GET_EXERCISE_OBSERVATION
doshortcuts.xml
:<!-- shortcuts.xml --> <!-- shortcuts are bound to the GET_EXERCISE_OBSERVATION capability and represent the types of exercises supported by the app. --> <shortcut android:shortcutId="running" android:shortcutShortLabel="@string/activity_running"> <capability-binding android:key="actions.intent.GET_EXERCISE_OBSERVATION"> <parameter-binding android:key="exerciseObservation.aboutExercise.name" android:value="@array/runningSynonyms"/> </capability-binding> </shortcut> <shortcut android:shortcutId="walking" android:shortcutShortLabel="@string/activity_walking"> <capability-binding android:key="actions.intent.GET_EXERCISE_OBSERVATION"> <parameter-binding android:key="exerciseObservation.aboutExercise.name" android:value="@array/walkingSynonyms"/> </capability-binding> </shortcut> <shortcut android:shortcutId="cycling" android:shortcutShortLabel="@string/activity_cycling"> <capability-binding android:key="actions.intent.GET_EXERCISE_OBSERVATION"> <parameter-binding android:key="exerciseObservation.aboutExercise.name" android:value="@array/cyclingSynonyms"/> </capability-binding> </shortcut> <capability android:name="actions.intent.GET_EXERCISE_OBSERVATION"> <!-- ... --> </capability>
Dodawanie intencji zastępczej
Intencje zastępcze obsługują sytuacje, w których nie można zrealizować zapytania użytkownika, ponieważ w zapytaniu brakuje parametrów wymaganych przez tę funkcję. Funkcja GET_EXERCISE_OBSERVATION
wymaga parametru exerciseObservation.aboutExercise.name
określonego w atrybucie android:required="true"
. W takich sytuacjach Asystent wymaga zdefiniowania intencji zastępczej, aby żądanie zostało zrealizowane, nawet jeśli w zapytaniu nie ma żadnych parametrów.
- W elemencie
shortcuts.xml
dodaj intencję zastępczą do możliwościGET_EXERCISE_OBSERVATION
, używając tej konfiguracji:<!-- shortcuts.xml --> <capability android:name="actions.intent.GET_EXERCISE_OBSERVATION"> <app-widget> <!-- ... --> </app-widget> <!-- Fallback intent with no parameters needed to successfully execute.--> <intent android:identifier="GET_EXERCISE_OBSERVATION_FALLBACK" android:action="android.intent.action.VIEW" android:targetClass="com.devrel.android.fitactions.widgets.StatsWidgetProvider"> </intent> </capability>
W tej przykładowej konfiguracji realizację zastępczą jest intencja Androida bez parametrów w danych Extra
.
5. Włącz widżet Asystenta
Gdy funkcja GET_EXERCISE_OBSERVATION
będzie już dostępna, zaktualizuj klasę widżetu tak, aby obsługiwała głosowe wywołania akcji w aplikacji.
Dodaj bibliotekę rozszerzeń widżetów
Biblioteka rozszerzeń widżetów Akcje w aplikacji ulepsza widżety i ułatwia działanie Asystenta głosowego. Pozwala on przygotować własne wprowadzenie dla funkcji zamiany tekstu na mowę do widżetów.
- Dodaj zależność biblioteki rozszerzenia widżetów do zasobu
/app/build.gradle
przykładowej aplikacji:
Kliknij Synchronizuj teraz w oknie ostrzeżenia, które pojawi się w Android Studio. Synchronizacja co// app/build.gradle dependencies { //... implementation "com.google.assistant.appactions:widgets:0.0.1" }
build.gradle
zmiany pomaga uniknąć błędów podczas tworzenia aplikacji.
Dodawanie usługi widżetów
Usługa to komponent aplikacji, który może wykonywać w tle długo trwające operacje. Aplikacja musi mieć usługę do przetwarzania żądań widżetów.
- Dodaj usługę do zasobu
AndroidManifest.xml
przykładowej aplikacji z tą konfiguracją:<!-- AndroidManifest.xml --> <service android:name=".widgets.StatsWidgetProvider" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="com.google.assistant.appactions.widgets.PIN_APP_WIDGET" /> </intent-filter> </service>
Podczas wykonywania zapytania głosowego, które aktywuje realizację widżetu, Asystent używa tej usługi do wysyłania żądań do aplikacji. Usługa otrzymuje żądanie wraz z danymi BII. Usługa używa tych danych do generowania obiektu widżetu RemoteView
do renderowania w Asystencie.
Zaktualizuj klasę widżetu
Aplikacja jest teraz skonfigurowana tak, aby kierować żądania możliwości GET_EXERCISE_OBSERVATION
do klasy widżetu. Następnie zaktualizuj klasę StatsWidget.kt
, aby wygenerować wystąpienie widżetu spersonalizowane pod kątem żądania użytkownika przy użyciu wartości parametrów BII.
- Otwórz zajęcia
StatsWidget.kt
i zaimportuj bibliotekę rozszerzenia widżetu Działania w aplikacji:// StatsWidget.kt // ... Other import statements import com.google.assistant.appactions.widgets.AppActionsWidgetExtension
- Dodaj te zmienne prywatne, które będą używane do określania informacji, które powinny wypełnić widżet:
// StatsWidget.kt private val hasBii: Boolean private val isFallbackIntent: Boolean private val aboutExerciseName: String private val exerciseType: FitActivity.Type
- Dodaj funkcję
init
, aby umożliwić klasie korzystanie z danych opcji widżetu przekazywanych przez Asystenta:// StatsWidget.kt init { val optionsBundle = appWidgetManager.getAppWidgetOptions(appWidgetId) val bii = optionsBundle.getString(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_BII) hasBii = !bii.isNullOrBlank() val params = optionsBundle.getBundle(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_PARAMS) if (params != null) { isFallbackIntent = params.isEmpty if (isFallbackIntent) { aboutExerciseName = context.resources.getString(R.string.activity_unknown) } else { aboutExerciseName = params.get("aboutExerciseName") as String } } else { isFallbackIntent = false aboutExerciseName = context.resources.getString(R.string.activity_unknown) } exerciseType = FitActivity.Type.find(aboutExerciseName) }
Zobaczmy, jak te aktualizacje umożliwiają klasie StatsWidget.kt
reagowanie na intencje Androida generowane przez funkcję GET_EXERCISE_OBSERVATION
:
optionsBundle
= Pakiet- Pakiety to obiekty, które służą do przekraczania granic procesów, między działaniami z intencjami oraz do przechowywania stanu przejściowego po zmianach konfiguracji. Asystent używa obiektów
Bundle
, aby przekazywać do widżetu dane konfiguracyjne.
- Pakiety to obiekty, które służą do przekraczania granic procesów, między działaniami z intencjami oraz do przechowywania stanu przejściowego po zmianach konfiguracji. Asystent używa obiektów
bii
=actions.intent.GET_EXERCISE_OBSERVATION
- Nazwa BII jest dostępna w pakiecie za pomocą
AppActionsWidgetExtension
.
- Nazwa BII jest dostępna w pakiecie za pomocą
hasBii
=true
- Sprawdza, czy nie występuje BII.
params
=Bundle[{aboutExerciseName=running}]
- W opcjach widżetu
Bundle
jest zagnieżdżony specjalny pakiet wygenerowany przez akcje w aplikacji. Zawiera pary klucz-wartość klucza BII. W tym przypadku wartośćrunning
została pobrana z przykładowego zapytania „OK Google, pokaż moje statystyki biegowe w PrzykładowaAplikacja”.
- W opcjach widżetu
isFallbackIntent
=false
- Sprawdza obecność wymaganych parametrów BII w intencji
Extras
.
- Sprawdza obecność wymaganych parametrów BII w intencji
aboutExerciseName
=running
- Pobiera wartość intencji
Extras
dla:aboutExerciseName
.
- Pobiera wartość intencji
exerciseType
=RUNNING
- Wykorzystuje
aboutExerciseName
do wyszukiwania odpowiedniego obiektu typu bazy danych.
- Wykorzystuje
Gdy klasa StatsWidget
może już przetwarzać przychodzące dane intencji Androida w działaniach aplikacji, zaktualizuj logikę procesu tworzenia widżetu, aby sprawdzić, czy widżet został wywołany przez działanie aplikacji.
- W
StatsWidget.kt
zastąp funkcjęupdateAppWidget()
tym kodem:// StatsWidget.kt fun updateAppWidget() { /** * Checks for App Actions BII invocation and if BII parameter data is present. * If parameter data is missing, use data from last exercise recorded to the * fitness tracking database. */ if (hasBii && !isFallbackIntent) { observeAndUpdateRequestedExercise() } else observeAndUpdateLastExercise() }
Poprzedni kod odwołuje się do nowej funkcji: observeAndUpdateRequestedExercise
. Ta funkcja generuje dane widżetu przy użyciu danych parametru exerciseType
przekazanych przez intencję App Actions na Androida.
- Dodaj funkcję
observeAndUpdateRequestedExercise
z tym kodem:// StatsWidget.kt /** * Create and observe the last exerciseType activity LiveData. */ private fun observeAndUpdateRequestedExercise() { val activityData = repository.getLastActivities(1, exerciseType) activityData.observeOnce { activitiesStat -> if (activitiesStat.isNotEmpty()) { formatDataAndSetWidget(activitiesStat[0]) updateWidget() } else { setNoActivityDataWidget() updateWidget() } } }
W poprzednim kodzie użyj istniejącej klasy repozytorium znalezionej w aplikacji, aby pobrać dane fitness z lokalnej bazy danych aplikacji. Ta klasa udostępnia interfejs API upraszczający dostęp do bazy danych. Repozytorium działa przez ujawnianie obiektu LiveData podczas wykonywania zapytań do bazy danych. W swoim kodzie widzisz to miejsce (LiveData
), aby pobrać najnowsze informacje o aktywności fizycznej.
Włącz zamianę tekstu na mowę
Możesz podać ciąg tekstowy zamiany tekstu na tekst, który Asystent będzie wypowiadać podczas wyświetlania widżetu. Warto go dodać, żeby widżety miały kontekst dźwiękowy. Ta funkcja jest dostępna w bibliotece rozszerzeń widżetów akcji aplikacji, która umożliwia ustawienie tekstu i wprowadzeń zamiany tekstu na tekst, które pojawią się w Asystencie w Asystencie.
Wprowadzenie do zamiany tekstu na mowę możesz umieścić w funkcji formatDataAndSetWidget
, która formatuje dane o aktywności zwracane z bazy danych aplikacji.
- W
StatsWidget.kt
dodaj do funkcjiformatDataAndSetWidget
ten kod:// StatsWidget.kt private fun formatDataAndSetWidget( activityStat: FitActivity, ) { // ... // Add conditional for hasBii for widget with data if (hasBii) { // Formats TTS speech and display text for Assistant val speechText = context.getString( R.string.widget_activity_speech, activityExerciseTypeFormatted, formattedDate, durationInMin, distanceInKm ) val displayText = context.getString( R.string.widget_activity_text, activityExerciseTypeFormatted, formattedDate ) setTts(speechText, displayText) } }
Poprzedni kod odwołuje się do 2 zasobów ciągu znaków: mowy i tekstowych. Obejrzyj część naszego filmu o zalecaniu stylu zamiany tekstu na mowę, w której znajdziesz zalecenia dotyczące zamiany tekstu na mowę. W przykładzie odnosimy się też do setTts
, nowej funkcji, która dostarcza informacje zamiany tekstu na mowę do instancji widżetu.
- Dodaj nową funkcję
setTts
doStatsWidget.kt
, używając tego kodu:// StatsWidget.kt /** * Sets TTS to widget */ private fun setTts( speechText: String, displayText: String, ) { val appActionsWidgetExtension: AppActionsWidgetExtension = AppActionsWidgetExtension.newBuilder(appWidgetManager) .setResponseSpeech(speechText) // TTS to be played back to the user .setResponseText(displayText) // Response text to be displayed in Assistant .build() // Update widget with TTS appActionsWidgetExtension.updateWidget(appWidgetId) }
Zakończ logikę TTS, ustawiając informacje TTS, gdy baza danych ćwiczeń zwróci puste dane dla wybranego typu treningu.
- Zaktualizuj funkcję
setNoActivityDataWidget()
wStatsWidget.kt
za pomocą tego kodu:// StatsWidget.kt private fun setNoActivityDataWidget() { // ... // Add conditional for hasBii for widget without data if (hasBii) { // formats speech and display text for Assistant // https://developers.google.com/assistant/app/widgets#library val speechText = context.getString(R.string.widget_no_activity_speech, aboutExerciseName) val displayText = context.getString(R.string.widget_no_activity_text) setTts(speechText, displayText) } }
6. Testowanie działania w aplikacji
Podczas programowania korzystaj z wtyczki Asystenta Google, aby wyświetlić podgląd akcji Asystenta na urządzeniu testowym. W tym narzędziu możesz dostosowywać parametry intencji dla akcji w aplikacji, aby przetestować różne sposoby, w jakie użytkownik może poprosić Asystenta o jej uruchomienie.
Tworzenie wersji przedpremierowej
Aby przetestować akcję w aplikacji za pomocą wtyczki:
- Kliknij Narzędzia > Asystent Google > Narzędzie do testowania działań w aplikacji. Może pojawić się prośba o zalogowanie się w Android Studio przy użyciu Twojego konta Google.
- Kliknij Utwórz podgląd. Gdy pojawi się prośba, przeczytaj i zaakceptuj zasady i warunki korzystania z akcji w aplikacji.
Testowanie oczekiwanego typu ćwiczenia
Aby wyświetlić widżet z informacjami o ostatnim uruchomieniu aplikacji, wykonaj te czynności w narzędziu testowym:
- W pierwszym kroku, w którym narzędzie prosi o wybranie i skonfigurowanie mechanizmu BII, wybierz
actions.intent.GET_EXERCISE_OBSERVATION
. - W polu exerciseObservation zmień domyślną nazwę ćwiczenia z
climbing
narun
. - Kliknij Uruchom działanie w aplikacji.
Testowanie nieoczekiwanego rodzaju ćwiczenia
Aby w narzędziu testowym przetestować nieoczekiwany typ ćwiczenia:
- W polu exerciseObservation zmień wartość
name
zRun
naClimbing
. - Kliknij Uruchom działanie w aplikacji.
Asystent powinien zwrócić widżet z komunikatem „Nie znaleziono aktywności” i informacjami o nich.
Testowanie intencji zastępczej
Zapytania aktywujące intencję zastępczą powinny zwracać widżet wyświetlający informacje o ostatniej zapisanej aktywności dowolnego typu ćwiczenia.
Aby przetestować intencję zastępczą:
- W polu exerciseObservation usuń obiekt
aboutExercise
. - Kliknij Uruchom działanie w aplikacji.
Asystent powinien wyświetlić widżet z informacjami o ostatnim ukończonym ćwiczeniu.
7. Dalsze kroki
Gratulacje!
Mogą teraz Państwo wykorzystywać za pomocą widżetu na Androida z Asystentem.
Omówione zagadnienia
Dzięki temu ćwiczeniu w programie omówiliśmy, jak:
- Dodaj widżet aplikacji do BII.
- Zmodyfikuj widżet, aby uzyskać dostęp do parametrów w Dodatkich do Androida.
Co dalej?
Tutaj możesz spróbować udoskonalić aplikację fitnessową. Aby odwołać się do zakończonego projektu, otwórz główne repozytorium na GitHubie.
Oto kilka sugestii, dzięki którym możesz dowiedzieć się więcej o rozszerzaniu możliwości korzystania z tej aplikacji za pomocą działań w aplikacji:
- Zapoznaj się z informacjami o intencjach wbudowanych w Akcjach w aplikacji, aby poznać więcej sposobów na rozszerzenie swoich aplikacji na Asystenta.
Aby dalej korzystać z Actions on Google, zapoznaj się z tymi materiałami:
- developers.google.com/assistant/app: oficjalna strona z dokumentacją działań w aplikacji Asystenta Google.
- Przykładowy indeks akcji w aplikacji: przykładowe aplikacje i kod do przeglądania możliwości w ramach tych działań.
- Repozytorium Actions on Google GitHub: przykładowy kod i biblioteki.
- r/GoogleAssistantDev: oficjalna społeczność na Reddicie dla deweloperów współpracujących z Asystentem Google.
Obserwuj nas na Twitterze @ActionsOnGoogle, aby być na bieżąco z najnowszymi informacjami. Aby poinformować o swoich dokonaniach, napisz na Twitterze #appactions.
Ankieta dotycząca opinii
Na koniec wypełnij tę ankietę, aby podzielić się wrażeniami na temat tego ćwiczenia z programowania.