Mit App Actions können Nutzer mit Google Assistant sprechen und direkt bestimmte App-Ziele zu erreichen, wenn sie zum Beispiel sagen: „Hey Google, bestell mir eine Fahrt mit Beispiel-App.“ Mit dem Aufruf einer App im Vordergrund können Sie wenn Nutzende Ihre App bereits geöffnet haben.
Beim Aufruf einer App im Vordergrund können integrierte Intents (BIIs) abgeglichen werden, ohne Der App-Name muss erwähnt werden, während eine bestimmte Aktivität in der im Vordergrund des Geräts.
Beispiel: Ein Nutzer hat Ihre Mitfahrdienst-App im Vordergrund geöffnet und sagt oder tippt, „Bestell mir eine Fahrt nach Mountain View“ zu Google Assistant. Deine App verwendet diese um das Feld „Ziel“ auf „Mountain View“ zu setzen. Wenn Nutzende dann sagen oder , „Bestelle mir eine Fahrt von SFO“, kann deine App die Abholung einstellen ohne den Zustand der App zu verändern.
Beschränkungen
Der Aufruf einer App im Vordergrund ist nur für die folgenden BIIs verfügbar:
actions.intent.CREATE_MONEY_TRANSFER
actions.intent.CREATE_TAXI_RESERVATION
actions.intent.OPEN_APP_FEATURE
actions.intent.ORDER_MENU_ITEM
actions.intent.PAUSE_EXERCISE
actions.intent.RECORD_EXERCISE
actions.intent.RECORD_FOOD_OBSERVATION
actions.intent.RESUME_EXERCISE
actions.intent.START_EXERCISE
actions.intent.STOP_EXERCISE
Um Unterstützung für Sprachen und Beispielabfragen in Bezug auf den Aufruf einer App im Vordergrund zu erhalten Informationen zu einem bestimmten BII finden Sie in der Referenz zu integrierten Intents.
Aufruf von Apps im Vordergrund unterstützen
Damit der Aufruf von Apps im Vordergrund unterstützt wird, muss die Auftragsausführung hinzugefügt werden. basierend auf einer gewünschten Aktivität im Vordergrund. Wenn diese Aktivität in der Vordergrund und die App Action wird aufgerufen, übergibt Assistant den Deeplink-Intent. mit einer zusätzlichen Markierung für diese Aktivität, damit Ihre App ihren Status aktualisieren kann.
So implementieren Sie den Aufruf einer App im Vordergrund für einen BII:
- Füge in der Datei
shortcuts.xml
dem BII ein<intent>
-Tag hinzu<capability>
: Sie möchten den Aufruf von Apps im Vordergrund unterstützen. - Fügen Sie im
<intent>
-Tag ein<extra>
-Tag hinzu. - Legen Sie im
<extra>
-Tagandroid:key
auf"requiredForegroundActivity"
fest. und legen Sieandroid:value
auf die Aktivität fest, im Vordergrund. Aktivität ohne Kurs angeben mit dem Namen des App-Pakets, gefolgt von einem Schrägstrich (/), gefolgt vom Namen der Aktivität:APP_PACKAGE_NAME/ACTIVITY_NAME
- Bei der Aktivität im Vordergrund, die Sie für
"requiredForegroundActivity"
angegeben haben, die MethodeonNewIntent()
implementieren, um einen Deeplink-Intent mitSINGLE_TOP
-Flag festgelegt. Assistant übergibt den Deeplink-Intent an Flag als Auftragsausführung kennzeichnen, wenn die angegebene Aktivität im Vordergrund ausgeführt wird. - Anrufe an
onNewIntent()
werden als Updates zu deinen Aktivitäten im Vordergrund behandelt und den Status dieser Aktivität mithilfe von Parametern verwalten, die aus dem Deeplink extrahiert wurden.
Wenn Ihre App eine Routeraktivität verwendet, damit alle externen Deeplinks eine die Aktivität eines einzelnen Gatekeeping-Routers, siehe Routeraktivitäten verarbeiten
Beispiel
Das folgende Snippet aus einer shortcuts.xml
-Beispieldatei zeigt, wie der
Attribut requiredForegroundActivity
:
<capability name="actions.intent.CREATE_TAXI_RESERVATION"> <!-- Trigger with foreground app invocation if MainActivity is in the foreground. --> <intent android:targetClass="com.example.app.MainActivity" android:targetPackage="com.example.app"> <parameter android:name="taxiReservation.dropoffLocation.name" android:key="dropoff" /> <extra android:key="requiredForegroundActivity" android:value="com.example.app/com.example.app.MainActivity" /> </intent> <!-- This won't trigger if MainActivity is in the foreground. --> <intent android:targetClass="com.example.app.MainActivity" android:targetPackage="com.example.app"> <parameter android:name="taxiReservation.dropoffLocation.name" android:key="dropoff" /> </intent> </capability>
Nutzerberechtigungen
![Nutzer müssen in den Geräteeinstellungen die Option „Text auf Bildschirm verwenden“ aktivieren
damit der Aufruf einer App im Vordergrund funktioniert.](https://developer.android.com/static/guide/app-actions/images/device-setting-assist-screen.png?authuser=9&hl=de)
Damit der Aufruf einer App im Vordergrund für einen Nutzer funktioniert, muss der Nutzer die Geräteeinstellung Text auf Bildschirm verwenden aktiviert. Den Standort und den genauen Namen kann je nach OEM oder Gerätehersteller variieren. Zum Beispiel Die Geräteeinstellung des Nutzers kann stattdessen auch als Bildschirmkontext verwenden bezeichnet werden. .
Um diese Android-Einstellung auf einem Pixel zu öffnen, rufen Sie zuerst Einstellungen > Apps und Benachrichtigungen > Standard-Apps > Assistent-App. Dann können Sie über den Assistenten Eingabebildschirm, aktiviere die Option Text auf Bildschirm verwenden.
Aufruf testen
So testen Sie den Aufruf einer App im Vordergrund:
- Folgen Sie der Anleitung im Abschnitt Nutzerberechtigungen, um die Geräteeinstellung Text auf Bildschirm verwenden.
- Öffnen Sie in Ihrer App die Aktivität, die Sie als erforderliche Vordergrundaktivität angegeben haben.
- Drücken und Startbildschirmtaste gedrückt halten, um Assistant als Overlay auf der aktuellen Geben Sie eine Abfrage an, die dem von Ihnen implementierten BII entspricht ohne den Namen der App zu nennen. Ist dies erfolgreich, wird Ihre App aktualisiert. basierend auf Ihrer Abfrage unter Beibehaltung des Zustands und ohne Neustart der Aktivität.
Routeraktivitäten verarbeiten
Einige Apps verarbeiten alle externen Deeplinks mit einem einzigen Gatekeeping-Router. Aktivitäten. Die Routeraktivität startet dann die entsprechende Geschäftslogik. Aktivität (nach etwaigen Überprüfungen und Validierungen) und gibt die Geschäftslogik zurück. in den Vordergrund zu stellen.
Wenn ein Deeplink ausgelöst wird, wird die Routeraktivität im oberen Bereich über der Vordergrundaktivität platzieren. Für Apps, die einen Router verwenden Aktivität senden, müssen Sie darauf achten, dass die Routeraktivität den Intent sendet, von Google Assistant auf die aktuelle Instanz der Aktivität im Vordergrund übertragen. So erreichen Sie Je nachdem, wo die Router-Aktivität beginnt, ändert sich diese Anforderung.
Wenn Ihr Router im selben Aufgabenstapel
beginnt wie Ihre Geschäftslogikaktivität,
Intent mit dem bitweisen ODER von SINGLE_TOP
, CLEAR_TOP
,
und NEW_TASK
:
Kotlin
Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK
Java
Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK
Router startet in einem anderen Aufgabenstapel als Ihre Geschäftslogik
Aktivität, leiten Sie den Intent mit dem Flag SINGLE_TOP
an das Unternehmen weiter.
die logische Aktivität.