1. Übersicht
Im ersten App Actions-Codelab hast du gelernt, wie du Google Assistant auf eine Beispiel-Fitness-App erweitern kannst, indem du integrierte Intents (integrierte Intents) aus der Kategorie „Gesundheit und Fitness“ (BII) implementiert hast.
Mit App Actions können Nutzer bestimmte App-Funktionen direkt von Assistant aus starten, indem sie z. B. sagen: „Hey Google, Lauf in ExampleApp starten“. Assistant kann nicht nur Apps starten, sondern dem Nutzer auch ein interaktives Android-Widget anzeigen, um Anfragen nach geeigneten BIIs auszuführen.
Aufgaben
In diesem Codelab erfährst du, wie du Android-Widgets zurückgeben kannst, um Anfragen von Assistant-Nutzern zu erfüllen. Außerdem lernen Sie:
- BII-Parameter verwenden, um Widgets zu personalisieren.
- Stellen Sie in Assistant Einführungen in die Sprachausgabe für Ihre Widgets bereit.
- Ermitteln Sie anhand der Referenz zu integrierten Intents, welche BIIs die Widget-Auftragsausführung unterstützen.
Vorbereitung
Bevor du fortfährst, muss deine Entwicklungsumgebung für die App Actions-Entwicklung bereit sein. Sie sollte Folgendes enthalten:
- Ein Terminal zum Ausführen von Shell-Befehlen, auf dem Git installiert ist.
- Die neueste stabile Version von Android Studio.
- Ein physisches oder virtuelles Android-Gerät mit Internetzugang
- Ein Google-Konto, mit dem Sie in Android Studio, in der Google App und in der Google Assistant App angemeldet sind.
Wenn Sie ein physisches Gerät verwenden, verbinden Sie es mit Ihrem lokalen Entwicklungscomputer.
2. Funktionsweise
Google Assistant verwendet Natural Language Understanding (NLU), um die Anfrage eines Nutzers zu lesen und einem integrierten Assistant (BII) zuzuordnen. Assistant ordnet den Intent dann der Funktion zu (die den BII implementiert), die Sie für diesen Intent in Ihrer App registrieren. Schließlich erfüllt Assistant die Anfrage des Nutzers, indem er das Android-Widget anzeigt, das Ihre App anhand der in der Funktion gefundenen Details generiert.
In diesem Codelab definieren Sie eine Funktion, die die Unterstützung für den BII GET_EXERCISE_OBSERVATION
registriert. Bei dieser Funktion weisen Sie Assistant an, einen Android-Intent für die Widget-Klasse FitActions
zu generieren, um Anfragen für diesen BII auszuführen. Du aktualisierst diesen Kurs, um ein personalisiertes Widget zu erstellen, das Assistant dem Nutzer anzeigen kann, sowie eine Sprachausgabe-Einführung, die Assistant ankündigt.
Das folgende Diagramm veranschaulicht diesen Ablauf:
Das FitActions-Widget
Die FitActions-Beispiel-App enthält ein Widget mit Trainingsinformationen, das Benutzer zu ihrem Startbildschirm hinzufügen können. Dieses Widget eignet sich hervorragend zur Erfüllung von Nutzeranfragen, die den BII GET_EXERCISE_OBSERVATION
auslösen.
Funktionsweise des Widgets
Wenn ein Nutzer dem Startbildschirm ein Widget hinzufügt, pingt das Widget den Broadcast-Empfänger des Geräts an. Dieser Dienst ruft Informationen zum Widget aus der Empfängerdefinition des Widgets in der AndroidManifest.xml
-Ressource der App ab. Anhand dieser Informationen wird ein RemoteViews
-Objekt generiert, das das Widget darstellt.
Die Beispielanwendung definiert den Empfänger widgets.StatsWidgetProvider
, der der Klasse StatsWidgetProvider
entspricht:
<!-- 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>
Die Klasse StatsWidgetProvider
, StatsWidgetProvider.kt
, verwaltet die Abläufe zur Objekterstellung StatsWidget
. Er übernimmt die folgenden Aufgaben:
- Widget-Instanzen erstellen und mit Trainingsdaten aus der App-Datenbank füllen
- Trainingsdaten werden mit
formatDataAndSetWidget()
zur besseren Lesbarkeit formatiert. - Mit
setNoActivityDataWidget()
werden Standardwerte angegeben, wenn keine Trainingsdaten verfügbar sind.
Assistant-Unterstützung hinzufügen
In diesem Codelab aktualisieren Sie die Beispiel-App so, dass sie die App Actions-Funktionen verarbeitet. Zu diesen Änderungen gehören:
- BII-Funktion
GET_EXERCISE_OBSERVATION
konfigurieren, um eine Instanz desStatsWidget
-Objekts zurückzugeben. - Die
StatsWidget
-Klasse aktualisieren, um App Actions-Funktionen wie die folgenden zu verwenden:- Mithilfe von BII-Parametern können Nutzer bestimmte Trainingsstatistiken aufrufen, indem sie beispielsweise fragen: „Hey Google, zeig meine Laufstatistiken in ExampleApp an.“
- Einleitungsstrings für die Sprachausgabe
- Verwaltung von Sonderfällen, z. B. wenn die Nutzeranfrage keinen Workout-Typ-Parameter enthält.
3. Bereiten Sie Ihre Entwicklungsumgebung vor
Basisdateien herunterladen
Führen Sie den folgenden Befehl aus, um das GitHub-Repository der Beispiel-App zu klonen:
git clone --branch start-widget-codelab https://github.com/actions-on-google/appactions-fitness-kotlin.git
Gehen Sie nach dem Klonen des Repositorys folgendermaßen vor, um es in Android Studio zu öffnen:
- Klicken Sie im Dialogfeld „Willkommen bei Android Studio“ auf Projekt importieren.
- Wählen Sie den Ordner aus, in den Sie das Repository geklont haben.
Wenn Sie eine Version der Anwendung sehen möchten, die das abgeschlossene Codelab darstellt, klonen Sie das Repository der Beispielanwendung mit dem Flag --branch master
.
Android-App-ID aktualisieren
Durch die Aktualisierung der App-ID wird die App auf Ihrem Testgerät eindeutig identifiziert. „Doppelte Paketnamen“ werden vermieden. wenn die App in die Play Console hochgeladen wird. Öffnen Sie app/build.gradle
, um die Anwendungs-ID zu aktualisieren:
android {
...
defaultConfig {
applicationId "com.MYUNIQUENAME.android.fitactions"
...
}
}
Ersetzen Sie "MYUNIQUENAME". im Feld applicationId
in ein für Sie einzigartiges Feld ein.
Test-Plug-in installieren
Mit dem Google Assistant-Plug-in können Sie App Actions auf einem Testgerät testen. Dabei werden über die Google App auf deinem Android-Gerät Informationen an Assistant gesendet. Wenn Sie das Plug-in noch nicht haben, installieren Sie es mit den folgenden Schritten:
- Gehen Sie zu Datei > Einstellungen (Android Studio > Einstellungen unter macOS)
- Rufen Sie im Abschnitt „Plug-ins“ den Marketplace auf und suchen Sie nach „Google Assistant“. Du kannst das Testtool auch manuell herunterladen und installieren.
- Installieren Sie das Tool und starten Sie Android Studio neu.
App auf dem Gerät testen
Bevor Sie weitere Änderungen an der App vornehmen, sollten Sie sich ein Bild davon machen, was die Beispiel-App leisten kann.
Führen Sie die App auf dem Testgerät aus:
- Wählen Sie in Android Studio Ihr physisches oder virtuelles Gerät und dann Ausführen > App ausführen oder in der Symbolleiste auf Ausführen klicken
- Halte die Startbildschirmtaste lange gedrückt, um Assistant einzurichten und zu prüfen, ob er funktioniert. Dazu musst du dich auf deinem Gerät in Assistant anmelden.
Weitere Informationen zu virtuellen Android-Geräten finden Sie unter Virtuelle Android-Geräte erstellen und verwalten.
Sehen Sie sich kurz die App an, um zu sehen, was sie alles kann. Die App füllt vorab zehn Trainingsaktivitäten und zeigt diese Informationen in der ersten Ansicht an.
Vorhandenes Widget ausprobieren
- Tippen Sie auf die Schaltfläche Startseite, um den Startbildschirm des Testgeräts aufzurufen.
- Drücken Sie lange auf eine leere Stelle auf dem Startbildschirm und wählen Sie Widgets aus.
- Scrollen Sie in der Widget-Liste nach unten zu FitActions.
- Drücke lange auf das FitActions-Symbol und platziere das Widget auf dem Startbildschirm.
4. App Action hinzufügen
In diesem Schritt fügen Sie die BII-Funktion GET_EXERCISE_OBSERVATION
hinzu. Dazu fügen Sie ein neues capability
-Element in shortcuts.xml
hinzu. Diese Capability gibt an, wie die Capability ausgelöst wird, wie BII-Parameter verwendet werden und welche Android-Intents aufgerufen werden sollen, um die Anfrage zu erfüllen.
- Fügen Sie der Ressource des Beispielprojekts
shortcuts.xml
mit dieser Konfiguration ein neuescapability
-Element hinzu:
Ersetzen Sie den<!-- 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
-WertPUT_YOUR_APPLICATION_ID_HERE
durch Ihren eindeutigenapplicationId
.
Diese Funktion ordnet den BII GET_EXERCISE_OBSERVATION
dem Intent app-widget
zu. Wenn der BII ausgelöst wird, wird das Widget instanziiert und dem Nutzer angezeigt.
Bevor das Widget ausgelöst wird, extrahiert Assistant unterstützte BII-Parameter aus der Nutzerabfrage. Für dieses Codelab ist der BII-Parameter exerciseObservation.aboutExercise.name
erforderlich, der den vom Nutzer angeforderten Trainingstyp darstellt. Die App unterstützt drei Trainingstypen: „Laufen“, „Gehen“ und „Radfahren“. Sie stellen ein Inline-Inventar bereit, um Assistant über diese unterstützten Werte zu informieren.
- Definieren Sie diese Inventarelemente, indem Sie
shortcuts.xml
diese Konfiguration oberhalb der FunktionGET_EXERCISE_OBSERVATION
hinzufügen:<!-- 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>
Fallback-Intent hinzufügen
Fallback-Intents verarbeiten Situationen, in denen eine Nutzeranfrage nicht ausgeführt werden kann, weil in der Abfrage Parameter fehlen, die für die Funktion erforderlich sind. Für die Funktion GET_EXERCISE_OBSERVATION
ist der Parameter exerciseObservation.aboutExercise.name
erforderlich, der durch das Attribut android:required="true"
angegeben wird. In diesen Fällen erfordert Assistant, dass Sie einen Fallback-Intent definieren, damit die Anfrage ausgeführt werden kann, auch wenn keine Parameter in der Abfrage angegeben sind.
- Fügen Sie in
shortcuts.xml
der FunktionGET_EXERCISE_OBSERVATION
mit der folgenden Konfiguration einen Fallback-Intent hinzu:<!-- 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>
In dieser Beispielkonfiguration ist die Fallback-Auftragsausführung ein Android-Intent ohne Parameter in den Extra
-Daten.
5. Widget für Assistant aktivieren
Sobald die GET_EXERCISE_OBSERVATION
-Funktion eingerichtet ist, aktualisieren Sie die Widget-Klasse so, dass sie App Actions-Sprachaufrufe unterstützt.
Bibliothek der Widget-Erweiterung hinzufügen
Die Widgets-Erweiterungsbibliothek für App Actions optimiert Ihre Widgets für die Sprachsteuerung von Assistant. Insbesondere können Sie eine benutzerdefinierte Text-in-Sprache-Einführung für Ihre Widgets anbieten.
- Fügen Sie die Abhängigkeit der Widget-Erweiterungsbibliothek zur Ressource
/app/build.gradle
der Beispiel-App hinzu:
Klicken Sie im Warnfenster in Android Studio auf Jetzt synchronisieren. Durch die Synchronisierung nach jeder// app/build.gradle dependencies { //... implementation "com.google.assistant.appactions:widgets:0.0.1" }
build.gradle
-Änderung lassen sich Fehler beim Erstellen der App vermeiden.
Widget-Dienst hinzufügen
Ein Dienst ist eine Anwendungskomponente, die lang andauernde Vorgänge im Hintergrund ausführen kann. Ihre App muss einen Dienst zur Verarbeitung von Widget-Anfragen bereitstellen.
- Fügen Sie der Ressource
AndroidManifest.xml
der Beispiel-App mit der folgenden Konfiguration einen Dienst hinzu:<!-- 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>
Während einer Sprachanfrage, durch die eine Widget-Ausführung ausgelöst wird, verwendet Assistant diesen Dienst, um Anfragen an die App zu senden. Der Dienst empfängt die Anfrage zusammen mit den BII-Daten. Der Dienst verwendet diese Daten, um ein RemoteView
-Widget-Objekt zu generieren, das innerhalb von Assistant gerendert wird.
Widget-Klasse aktualisieren
Deine App ist jetzt so konfiguriert, dass Funktionsanfragen vom Typ GET_EXERCISE_OBSERVATION
an deine Widgetklasse weitergeleitet werden. Aktualisieren Sie als Nächstes die Klasse StatsWidget.kt
, um mithilfe von BII-Parameterwerten eine Widget-Instanz zu generieren, die auf die Nutzeranfrage zugeschnitten ist.
- Öffnen Sie die Klasse
StatsWidget.kt
und importieren Sie die Bibliothek mit den App Actions Widget-Erweiterungen:// StatsWidget.kt // ... Other import statements import com.google.assistant.appactions.widgets.AppActionsWidgetExtension
- Fügen Sie die folgenden privaten Variablen hinzu, um festzulegen, welche Informationen in das Widget eingefügt werden sollen:
// StatsWidget.kt private val hasBii: Boolean private val isFallbackIntent: Boolean private val aboutExerciseName: String private val exerciseType: FitActivity.Type
- Füge die Funktion
init
hinzu, damit die Klasse die von Assistant übergebenen Widget-Optionsdaten verwenden kann:// 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) }
Sehen wir uns an, wie diese Updates es der StatsWidget.kt
-Klasse ermöglichen, auf Android-Intents zu reagieren, die von der GET_EXERCISE_OBSERVATION
-Funktion generiert wurden:
optionsBundle
= Set- Bundles sind Objekte, die über Prozessgrenzen hinweg, zwischen Aktivitäten mit Intents und zum Speichern eines vorübergehenden Status über Konfigurationsänderungen hinweg verwendet werden sollen. Der Assistent verwendet
Bundle
-Objekte, um Konfigurationsdaten an das Widget zu übergeben.
- Bundles sind Objekte, die über Prozessgrenzen hinweg, zwischen Aktivitäten mit Intents und zum Speichern eines vorübergehenden Status über Konfigurationsänderungen hinweg verwendet werden sollen. Der Assistent verwendet
bii
=actions.intent.GET_EXERCISE_OBSERVATION
- Der Name des BII ist im Bundle mit der
AppActionsWidgetExtension
verfügbar.
- Der Name des BII ist im Bundle mit der
hasBii
=true
- Prüft, ob ein BII vorhanden ist.
params
=Bundle[{aboutExerciseName=running}]
- Ein spezielles Bundle, das durch App Actions generiert wurde, ist in den Widget-Optionen
Bundle
verschachtelt. Es enthält die Schlüssel/Wert-Paare des BII. In diesem Fall wurde der Wertrunning
aus der Beispielabfrage Hey Google, zeig mir meine Laufstatistiken in ExampleApp extrahiert.
- Ein spezielles Bundle, das durch App Actions generiert wurde, ist in den Widget-Optionen
isFallbackIntent
=false
- Prüft, ob im Intent
Extras
erforderliche BII-Parameter vorhanden sind.
- Prüft, ob im Intent
aboutExerciseName
=running
- Ruft den
Extras
-Wert des Intents füraboutExerciseName
ab.
- Ruft den
exerciseType
=RUNNING
- Verwendet
aboutExerciseName
, um das entsprechende Datenbanktypobjekt zu suchen.
- Verwendet
Da die StatsWidget
-Klasse jetzt eingehende Android-Intent-Daten von App Actions verarbeiten kann, aktualisieren Sie die Ablauflogik der Widget-Erstellung, um zu prüfen, ob das Widget durch eine App Action ausgelöst wurde.
- Ersetzen Sie in
StatsWidget.kt
die FunktionupdateAppWidget()
durch diesen Code:// 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() }
Der vorherige Code verweist auf die neue Funktion observeAndUpdateRequestedExercise
. Diese Funktion generiert Widget-Daten mithilfe der exerciseType
-Parameterdaten, die vom Android-Intent „App Actions“ übergeben werden.
- Fügen Sie die Funktion
observeAndUpdateRequestedExercise
mit diesem Code hinzu:// 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() } } }
Verwenden Sie im vorstehenden Code eine vorhandene Repository-Klasse aus der App, um Fitnessdaten aus der lokalen Datenbank der App abzurufen. Diese Klasse bietet eine API, die den Zugriff auf die Datenbank vereinfacht. Das Repository macht bei Abfragen der Datenbank ein LiveData-Objekt verfügbar. In Ihrem Code beobachten Sie diesen LiveData
, um die letzte Fitnessaktivität abzurufen.
Sprachausgabe aktivieren
Sie können einen Text für Sprachausgabe angeben, den Assistant bei der Anzeige Ihres Widgets ankündigt. Wir empfehlen, diesen Hinweis zu verwenden, um hörbaren Kontext für Ihre Widgets bereitzustellen. Diese Funktion wird von der Erweiterungsbibliothek für Widgets für App Actions zur Verfügung gestellt. Damit kannst du den Text und die Text-in-Sprache-Einleitungen festlegen, die deinen Widgets in Assistant angezeigt werden.
Die Funktion formatDataAndSetWidget
bietet die Möglichkeit, die Aktivitätsdaten zu formatieren, die aus der App-Datenbank zurückgegeben werden.
- Fügen Sie in
StatsWidget.kt
diesen Code zur FunktionformatDataAndSetWidget
hinzu:// 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) } }
Der vorherige Code verweist auf zwei Stringressourcen: eine für Sprache und eine für Text. Sehen Sie sich die Empfehlungen für den Sprachausgabe-Stil in unserem Widget-Video mit Empfehlungen zur Text-in-Sprache-Funktion an. Das Beispiel bezieht sich auch auf setTts
, eine neue Funktion, die die Text-in-Sprache-Informationen an die Widget-Instanz bereitstellt.
- Fügen Sie
StatsWidget.kt
die neuesetTts
-Funktion mit diesem Code hinzu:// 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) }
Vervollständigen Sie die Sprachausgabe-Logik, indem Sie Text-in-Sprache-Informationen festlegen, wenn die Trainingsdatenbank leere Daten für einen angeforderten Trainingstyp zurückgibt.
- Aktualisieren Sie die Funktion
setNoActivityDataWidget()
inStatsWidget.kt
mit diesem Code:// 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. App Action testen
Verwenden Sie während der Entwicklung das Google Assistant-Plug-in, um Assistant App Actions auf einem Testgerät als Vorschau anzusehen. Du kannst Intent-Parameter für eine App Action mit dem Tool anpassen, um zu testen, wie deine Aktion mit den verschiedenen Möglichkeiten umgeht, die ein Nutzer Assistant zum Ausführen der Aktion bittet.
Vorschau erstellen
So testen Sie Ihre App Action mit dem Plug-in:
- Klicken Sie auf Tools > Google Assistant > App Actions-Testtool Möglicherweise wirst du aufgefordert, dich mit deinem Google-Konto in Android Studio anzumelden.
- Klicken Sie auf Vorschau erstellen. Wenn du dazu aufgefordert wirst, lies und akzeptiere die Richtlinien und Nutzungsbedingungen für App Actions.
Erwarteten Trainingstyp testen
Rückgabe eines Widgets mit Informationen über die letzte Ausführung in der App durch Befolgen der folgenden Schritte im Testtool:
- Im ersten Schritt, in dem Sie aufgefordert werden, einen BII auszuwählen und zu konfigurieren, wählen Sie
actions.intent.GET_EXERCISE_OBSERVATION
aus. - Ändern Sie im Feld exerciseObservation den Standardnamen der Übung von
climbing
zurun
. - Klicken Sie auf Run App Action (App-Aktion ausführen).
Unerwarteten Trainingstyp testen
So testest du eine unerwartete Trainingsart im Testtool:
- Ändern Sie im Feld exerciseObservation den Wert für
name
vonRun
aufClimbing
. - Klicken Sie auf Run App Action (App-Aktion ausführen).
Assistant sollte ein Widget zurückgeben, auf dem „Keine Aktivität gefunden“ angezeigt wird Informationen.
Fallback-Intent testen
Abfragen, die den Fallback-Intent auslösen, sollten ein Widget zurückgeben, das Informationen über die letzte protokollierte Aktivität eines beliebigen Trainingstyps anzeigt.
So testen Sie den Fallback-Intent:
- Löschen Sie im Feld exerciseObservation das Objekt
aboutExercise
. - Klicken Sie auf Run App Action (App-Aktion ausführen).
Assistant sollte ein Widget zurückgeben, das Informationen für das letzte abgeschlossene Training anzeigt.
7. Nächste Schritte
Glückwunsch!
Sie haben jetzt die Möglichkeit, über ein Android-Widget und Assistant.
Behandelte Themen
In diesem Codelab haben Sie gelernt, wie Sie:
- Ein App-Widget zu einem BII hinzufügen.
- Ändere ein Widget, um auf Parameter aus Android-Extras zuzugreifen.
Nächste Schritte
Von hier aus können Sie weitere Optimierungen an Ihrer Fitness-App vornehmen. Informationen zum abgeschlossenen Projekt finden Sie im Haupt-Repository auf GitHub.
Hier sind einige Vorschläge, wie du diese App mit App Actions erweitern kannst:
- Weitere Möglichkeiten zur Erweiterung deiner Apps auf Assistant findest du in der Referenz zu integrierten Intents für App Actions.
Wenn Sie Actions on Google weiter nutzen möchten, sollten Sie sich die folgenden Ressourcen ansehen:
- developers.google.com/assistant/app: Offizielle Dokumentationswebsite für Google Assistant App Actions.
- Beispielindex für App Actions: Beispiel-Apps und Code zum Ausprobieren der App Actions-Funktionen.
- Actions on Google GitHub-Repository: Beispielcode und Bibliotheken
- r/GoogleAssistantDev: Offizielle Reddit-Community für Entwickler, die mit Google Assistant arbeiten.
Folge uns auf Twitter (@ActionsOnGoogle), um dich über unsere neuesten Ankündigungen zu informieren, und twittere unter #appactions, um deine Arbeit mit anderen zu teilen.
Feedback-Umfrage
Wir würden uns freuen, wenn du uns an dieser Umfrage teilnimmst, um uns Feedback zu diesem Codelab zu geben.