1. Übersicht
Mit App Actions können Nutzer bestimmte App-Funktionen direkt von Google Assistant aus starten und so die Reichweite deiner Android-App erhöhen. Als Android-Entwickler können Sie Funktionen implementieren, mit denen Google Assistant weiß, welche Funktionen Nutzern zur Verfügung stehen und wie Sie diese Anfragen erfüllen möchten.
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. BIIs sind in Kategorien eingeteilt, die die Arten von Aufgaben darstellen, die Nutzer oft Assistant ausführen.
In diesem Codelab erfährst du, wie du einer App mithilfe von BIIs aus der „Common“ BII-Kategorie steht für häufige App-Aufgaben, die fast jede Android-App erfüllen kann.
In diesem Codelab werden Konzepte für fortgeschrittene Nutzer zum Entwickeln mit App Actions behandelt. Sie sollten Erfahrung in der Entwicklung von Android-Apps und der Implementierung von Android-Intents haben.
Aufgaben
In diesem Codelab fügen Sie einer Beispiel-App für To-do-Listen zwei gängige BIIs hinzu, mit denen Nutzer Assistant bitten können, Folgendes zu tun:
- Rufen Sie Funktionen in der App mit dem BII
actions.intent.OPEN_APP_FEATURE
auf. - Sie können mithilfe der In-App-Suche nach Inhalten mit dem BII
actions.intent.GET_THING
suchen.
Abbildung 1. Drei progressive Bildschirme, auf denen Google Assistant aktive Aufgaben in einer App anzeigt.
Lerninhalte
Du erfährst, wie du allgemeine Kategorie-BIIs verwenden kannst, um Assistant auf die meisten Android-Apps auszuweiten. Außerdem erfahren Sie, wie Sie gängige BIIs mit dem Google Assistant-Plug-in für Android Studio testen.
Vorbereitung
- Ein Terminal zum Ausführen von Shell-Befehlen mit installiertem Git.
- Die neueste stabile Version von Android Studio.
- Ein physisches oder virtuelles Android-Gerät mit Internetzugriff auf den Google Play Store, auf dem deine Aktionen getestet werden.
- Dein Google-Konto muss in Android Studio sowie in der Google App und in der Google Assistant App auf deinem Testgerät angemeldet sein.
In diesem Codelab verwendest du ein Android-Gerät (physisch oder virtuell), um deine Aktionen zu testen. Wenn Sie ein physisches Gerät verwenden, muss es mit Ihrem lokalen Entwicklungscomputer verbunden sein. Außerdem müssen Sie auf dem Gerät in der Google App und in Android Studio mit demselben Google-Konto angemeldet sein. Auf dem Gerät muss außerdem die Google Assistant App installiert sein.
2. Funktionsweise
Mit App Actions werden Nutzer über Google Assistant mit deiner Android-App verbunden. Aber wie funktionieren sie?
Wenn ein Nutzer Assistant angibt, dass er Ihre App verwenden möchte, sucht Assistant über eine shortcuts.xml
-Datei nach für Ihre App registrierten App Actions. Diese Datei enthält die Funktionen der App, die einen integrierten Assistant-Intent oder einen benutzerdefinierten Intent mit einem Android-Intent oder einem Deeplink verknüpfen.
Wenn ein Nutzer eine Anfrage an Assistant sendet, parst Assistant die Eingabe und ordnet sie einem App Actions-Intent zu (in diesem Codelab ist das ein BII). Assistant erkennt anhand der shortcuts.xml
-Datei in deiner Android-App, welche Funktionen du unterstützt. Bei Intent-Übereinstimmung enthält die Funktion mit diesem BII, wie Sie die Anfrage erfüllen möchten. In diesem Codelab ist die Auftragsausführung ein Android-Intent, der eine Aktivität in Ihrer App startet.
Das folgende Diagramm zeigt diesen Assistant-Ablauf:
Abbildung 2: Ein Ablauf, in dem beschrieben wird, wie Google Assistant eine Sprachanfrage verarbeitet.
Die Projektdatei shortcuts.xml
enthält für jede App Action die folgenden Informationen:
- Was für den integrierten oder benutzerdefinierten Intent der App Action verwendet wird
- Welche Android-Aktivität oder welcher Deeplink soll dem Nutzer zur Verfügung gestellt werden?
- Parameter für den integrierten Intent den Informationen zuordnen, die der Nutzer Assistant bereitstellt
Deine Android-Aktivitäten werden dann nach dem bereitgestellten Android-Intent oder -Deeplink gefiltert und verarbeitet, um dem Nutzer die gewünschte Funktion bereitzustellen. Das Ergebnis ist eine Nutzererfahrung, bei der Assistant Ihre App-Funktionen als Antwort auf die Anfrage eines Nutzers aufruft.
3. Bereiten Sie Ihre Entwicklungsumgebung vor
In diesem Codelab wird die Beispiel-App für To-do-Listen für Android verwendet. Mit dieser Beispiel-App können Sie Aufgaben zu To-do-Listen hinzufügen, Elemente nach Kategorie suchen und Informationen zu erledigten Aufgaben abrufen.
Basisdateien herunterladen
Führen Sie den folgenden Befehl aus, um das GitHub-Repository der Beispiel-App zu klonen:
git clone --branch codelab-start https://github.com/actions-on-google/appactions-common-biis-kotlin.git
Gehen Sie nach dem Klonen des Repositorys folgendermaßen vor, um es in Android Studio zu öffnen:
- Klicken Sie im Dialogfeld Welcome to Android Studio (Willkommen bei Android Studio) auf Import project (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.
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. So führen Sie die App in Ihrem Emulator aus:
- Wählen Sie in Android Studio Run > (Ausführen >) aus. App ausführen oder in der Symbolleiste auf Ausführen klicken
- Wählen Sie im Dialogfeld Select Deployment Target (Bereitstellungsziel auswählen) ein Gerät aus und klicken Sie auf OK. Die empfohlene Betriebssystemversion ist Android 10 (API-Level 30) oder höher. Actions können jedoch auch auf Geräten ab Android 5 (API-Level 21) ausgeführt werden.
- Halten Sie 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.
Abbildung 3: Eine Animation, die die Beispiel-App für To-do-Listen zeigt.
Sehen Sie sich kurz die App an, um zu sehen, was sie alles kann. Wenn Sie auf das Plussymbol tippen, wird ein neues Aufgabenelement erstellt. Über die Menüpunkte oben rechts können Sie Aufgabenelemente suchen und nach dem Bearbeitungsstatus filtern.
Test-Plug-in installieren
Mit dem Google Assistant-Plug-in können Sie App Actions auf einem Testgerät testen. Installieren Sie das Testtool wie folgt, falls noch nicht geschehen:
- Wählen Sie Datei > Einstellungen (Android Studio > Einstellungen unter macOS).
- Gehen Sie im Abschnitt „Plug-ins“ zu Marketplace und suchen Sie nach „Google Assistant“. Sie können das Testtool auch manuell herunterladen und installieren.
- Wenn Sie das Plug-in nicht im Marketplace finden, laden Sie das Plug-in manuell herunter und folgen Sie der Anleitung unter Plug-in von Festplatte installieren.
- Installieren Sie das Tool und starten Sie Android Studio neu.
4. „Get Thing BII“-Funktion hinzufügen
Der BII actions.intent.GET_THING
erweitert Ihre In-App-Suchfunktion auf Google Assistant. In diesem Schritt implementierst und testest du den BII GET_THING
, damit Nutzer in der Beispiel-App nach bestimmten Aufgaben suchen können.
Definieren der Get Thing-Funktion
Bei einer suchbezogenen App Action extrahiert Assistant Suchbegriffe aus der Nutzeranfrage in den BII-Parameter thing.name
und übergibt diesen Wert dann an die Android-App.
Wenn du deiner App den BII GET_THING
hinzufügen möchtest, aktualisiere shortcuts.xml
im Verzeichnis app/src/main/res/xml
des Beispielprojekts mit einem <capability>
-Element im obersten <shortcuts>
-Tag:
shortcuts.xml
<shortcuts ....>
<capability android:name="actions.intent.GET_THING">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.yourApplicationId.appaction"
android:targetClass="com.example.android.architecture.blueprints.todoapp.tasks.TasksActivity">
<parameter
android:name="thing.name"
android:key="q"/>
</intent>
</capability>
</shortcuts>
Die obige Konfiguration:
- Gibt an, dass die App auf den BII
GET_THING
reagiert. - Gibt an, wie ein Android-Intent erstellt wird, der die App als Reaktion auf diesen BII startet.
- Die Aktivität wird mithilfe von
targetPackage
undtargetClass
identifiziert. - Der BII-Parameter
thing.name
wird dem Intent Extra mit dem Namenq
zugeordnet.
- Die Aktivität wird mithilfe von
Die benannte Aktivität muss im Manifest der App vorhanden und exportiert sein.
Die bereitgestellte Android-App enthält Metadaten, sodass das AndroidManifest die Datei shortcuts.xml
erkennt:
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
App Action testen
So testen Sie die In-App-Suche nach Ihrer App über Assistant:
- Vergewissere dich, dass dein Android-Gerät verbunden ist.
- Klicken Sie auf Tools > Google Assistant > App Actions-Testtool
- Klicken Sie auf Vorschau erstellen, um die Standardwerte für App-Name und Sprache zu übernehmen. Wenn du dazu aufgefordert wirst, lies und akzeptiere die Richtlinien und Nutzungsbedingungen für App Actions.
- Im ersten Schritt, in dem Sie aufgefordert werden, einen BII auszuwählen und zu konfigurieren, wählen Sie
actions.intent.GET_THING
aus. Ändern Sie denname
-Wert vonrunning shoes
inmilk
. - Klicken Sie auf Run App Action (App-Aktion ausführen).
In diesem Test verwendet der BII GET_THING
das Attribut name
, um die App nach Aufgaben zu suchen, die „Milch“ enthalten. Wie bei der vorherigen App Action kannst du deine Aktion mit dem Testtool testen. Oder du sagst auf deinem Testgerät einfach „Hey Google, suche in der Aufgabenliste nach Kuchenmischung oder einer anderen Suchanfrage.
5. BII-Funktion „Open App“ hinzufügen
In diesem Schritt implementieren Sie die Funktion zum Öffnen von Apps, sodass Nutzer ihre aktiven und erledigten Aufgaben mit Assistant aufrufen können. Füllen Sie dazu die Capability in shortcuts.xml
aus. Sie enthält Informationen dazu, wie die Capability ausgelöst wird, wie Parameter weitergegeben werden und welche Android-Intents aufgerufen werden sollen. In diesem Codelab verwendest du den BII OPEN_APP_FEATURE
. Nach der Implementierung dieses BII testest du die Aktion auf deinem Gerät.
Funktion zum Öffnen von Apps hinzufügen
Fügen Sie in shortcuts.xml
unter dem Element „Get Thing Capability“ eine zweite Funktion für die Funktion „App öffnen“ hinzu:
shortcuts.xml
<capability android:name="actions.intent.OPEN_APP_FEATURE">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="yourApplicationId"
android:targetClass="com.example.android.architecture.blueprints.todoapp.tasks.TasksActivity">
<parameter
android:name="feature"
android:key="feature"/>
</intent>
</capability>
Diese Funktion ordnet die Open-App-Funktion BII und den Android-Intent zusammen. Wenn also die Funktion „Open App“ (App öffnen) ausgelöst wird, wird der Android-Intent ausgelöst.
Bevor der Android-Intent ausgelöst wird, werden unterstützte Parameter aus der Eingabe des Nutzers abgerufen. Der BII OPEN_APP_FEATURE
unterstützt den Parameter feature
, der für die App-Funktion steht, die aus der Nutzeranfrage extrahiert wurde. Diese Anwendung unterstützt zwei Arten von Funktionen: aktive und abgeschlossene Aufgaben. Mit diesen Funktionen können Nutzer die App mit einer gefilterten Ansicht ihrer Aufgabenliste öffnen. Sie müssen Inline-Inventar verwenden, um diese Funktionen zu unterstützen.
Intent-Parameter mit Inline-Inventar verarbeiten
Intent-Parameter stellen die aus einer Nutzerabfrage extrahierten Elemente dar. Wenn ein Nutzer beispielsweise „Hey Google, bestelle eine Pizza von ExampleApp“ sagt, extrahiert Assistant „Pizza“. in einen food.item
-schema.org-Intent-Parameter und übergibt ihn an die zu verarbeitende Aktion.
Die BII-Funktion „Open App“ unterstützt den Parameter feature
. Dieser steht für die App-Funktion, die aus der Nutzeranfrage extrahiert wurde. Für diesen Parameter ist Inline-Inventar erforderlich. Assistant stellt Assistant eine Reihe unterstützter Namen von App-Funktionen zur Verfügung, die dem Parameterwert entsprechen.
Zur Verarbeitung des Intent-Parameters feature
fügen Sie eine Verknüpfung zu shortcuts.xml
mit dem folgenden Code über der Funktion „App öffnen“ hinzu:
shortcuts.xml
<shortcut
android:shortcutId="active_tasks"
android:shortcutShortLabel="@string/label_active"
android:enabled="false">
<capability-binding
android:key="actions.intent.OPEN_APP_FEATURE">
<parameter-binding
android:key="feature"
android:value="@array/active_tasks_synonyms" />
</capability-binding>
</shortcut>
<shortcut
android:shortcutId="completed_tasks"
android:shortcutShortLabel="@string/label_completed"
android:enabled="false">
<capability-binding
android:key="actions.intent.OPEN_APP_FEATURE">
<parameter-binding
android:key="feature"
android:value="@array/completed_tasks_synonyms" />
</capability-binding>
</shortcut>
Im Code oben haben Sie ein Inline-Inventar definiert, das als shortcut
-Elemente mit Funktions- und Parameterbindungen dargestellt wird. Verknüpfungen können als Inventar für BII-Parameter verwendet werden. Google Assistant gleicht die Nutzeranfrage mit den Werten in der Parameterbindung von Kurzbefehlen ab. Bei einem übereinstimmenden Parameterwert wird shortcutId
dem Auftragsausführungs-Intent hinzugefügt. Wenn ein Nutzer den BII OPEN_APP_FEATURE
mit einer Anfrage aktiviert, gleicht Assistant den Wert des Funktionsparameters mit dem Wertattribut einer Verknüpfung ab und übergibt den Wert an den targetClass
als parameter
in Extra
.
Wenn ein Nutzer beispielsweise „Hey Google, zeig mir meine erledigten Aufgaben in der Beispiel-App“ sagt, ordnet Assistant den Wert des Funktions-Intent-Parameterwerts „Abgeschlossene Aufgaben“ der entsprechenden Inventarverknüpfung zu. Dadurch wird dieser Wert an die Funktion OPEN_APP_FEATURE
übergeben. Assistant löst dann den Android-Intent aus.
App Action testen
Während der Entwicklung und beim Testen verwenden Sie das Google Assistant-Plug-in, um sich eine Vorschau Ihrer App Action mit Assistant auf einem Testgerät anzusehen. Du kannst das Tool auch verwenden, um Intent-Parameter für eine App Action anzupassen, um zu testen, wie deine Aktion die verschiedenen Möglichkeiten handhabt, die ein Nutzer Assistant bittet, sie auszuführen.
So testest du deine App Action mit dem Testtool:
- Verbinde dein physisches Android-Testgerät oder starte deinen Android-Emulator
- Falls das Test-Tool nicht angezeigt wird, öffnen Sie es über Tools > Google Assistant > App Actions-Testtool
- Klicken Sie auf die Schaltfläche Aktualisieren, um die Vorschau zu aktualisieren.
- Im ersten Schritt, in dem Sie aufgefordert werden, einen BII auszuwählen und zu konfigurieren, wählen Sie
actions.intent.OPEN_APP_FEATURE
aus. - Aktualisieren Sie im Feld feature den Standardwert für
History
inCompleted tasks
. - Klicken Sie auf Run App Action (App-Aktion ausführen).
Alternativ kannst du den Aufrufnamen direkt in der Assistant App auf deinem Gerät verwenden, um deine App Action auszuprobieren. Beispiel: „Hey Google, zeig mir erledigte Aufgaben in der Aufgabenliste.
6. Nächste Schritte
Glückwunsch!
Du kannst jetzt mithilfe gängiger BIIs so gut wie jede Android-App mit Google Assistant kompatibel machen.
Behandelte Themen
In diesem Codelab haben Sie Folgendes gelernt:
- Hier erfahren Sie, wie Sie Nutzern mithilfe von Assistant bestimmte App-Funktionen näherbringen können.
- Wie Nutzer über Assistant auf die In-App-Suche zugreifen können.
- Gängige BIIs mit dem Google Assistant-Plug-in testen
Nächste Schritte
Von hier aus können Sie weitere Optimierungen an Ihrer To-do-Listen-App vornehmen. Informationen zum abgeschlossenen Projekt finden Sie im –master-Branch des Repositorys auf GitHub.
Hier sind einige Vorschläge, wie du diese App mit App Actions erweitern kannst:
- Sehen Sie sich das Beispiel für eine Aufgabenliste mit Google Analytics for Firebase an, um zu erfahren, wie Sie die Leistung von App Actions erfassen.
- 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: Offizielle Dokumentationswebsite für Actions on Google
- 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 unter @ActionsOnGoogle, um dich über unsere neuesten Ankündigungen zu informieren, und twittere unter #AoGDevs, um deine Arbeit mit anderen zu teilen.
Feedback-Umfrage
Bitte nimm abschließend an dieser Umfrage teil, um uns Feedback zu deinen Erfahrungen mit diesem Codelab zu geben.