Android-Apps mit App Actions auf Google Assistant erweitern (Level 2)

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:

Drei progressive Bildschirme, auf denen Google Assistant aktive Aufgaben in einer App anzeigt.

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:

Ein Ablauf, der beschreibt, wie die Sprachanfrage eines Nutzers\nvon Google Assistant verarbeitet wird.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:

  1. Klicken Sie im Dialogfeld Welcome to Android Studio (Willkommen bei Android Studio) auf Import project (Projekt importieren).
  2. 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:

  1. Wählen Sie in Android Studio Run > (Ausführen >) aus. App ausführen oder in der Symbolleiste auf Ausführen klicken
  2. 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.
  3. 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.

Animation der Beispiel-App für To-do-Listen

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:

  1. Wählen Sie Datei > Einstellungen (Android Studio > Einstellungen unter macOS).
  2. Gehen Sie im Abschnitt „Plug-ins“ zu Marketplace und suchen Sie nach „Google Assistant“. Sie können das Testtool auch manuell herunterladen und installieren.
  3. 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:

  1. Gibt an, dass die App auf den BII GET_THING reagiert.
  2. Gibt an, wie ein Android-Intent erstellt wird, der die App als Reaktion auf diesen BII startet.
    • Die Aktivität wird mithilfe von targetPackage und targetClass identifiziert.
    • Der BII-Parameter thing.name wird dem Intent Extra mit dem Namen q zugeordnet.

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:

  1. Vergewissere dich, dass dein Android-Gerät verbunden ist.
  2. Klicken Sie auf Tools > Google Assistant > App Actions-Testtool
  3. 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.
  4. 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 den name-Wert von running shoes in milk.
  5. 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:

  1. Verbinde dein physisches Android-Testgerät oder starte deinen Android-Emulator
  2. Falls das Test-Tool nicht angezeigt wird, öffnen Sie es über Tools > Google Assistant > App Actions-Testtool
  3. Klicken Sie auf die Schaltfläche Aktualisieren, um die Vorschau zu aktualisieren.
  4. Im ersten Schritt, in dem Sie aufgefordert werden, einen BII auszuwählen und zu konfigurieren, wählen Sie actions.intent.OPEN_APP_FEATURE aus.
  5. Aktualisieren Sie im Feld feature den Standardwert für History in Completed tasks.
  6. 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:

Wenn Sie Actions on Google weiter nutzen möchten, sollten Sie sich die folgenden Ressourcen ansehen:

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.