Dank der Sprachsteuerung können Fahrer Aufgaben erledigen, ohne die Hände vom Lenkrad zu nehmen oder den Blick von der Straße abwenden zu müssen. Mit App Actions für Auto-Apps können Fahrer Google Assistant verwenden, um Android-Apps in ihrem Infotainmentsystem zu steuern, indem sie zum Beispiel „Hey Google, finde einen Parkplatz in der Beispiel-App“ sagen.
App-Aktionen funktionieren mit POI-Auto-Apps. In diesem Leitfaden werden die spezifischen Anforderungen und Einschränkungen für die Integration von App-Aktionen in Ihre POI-App beschrieben.
So funktionierts
Mit App Actions werden Ihre In-App-Funktionen auf Assistant erweitert, sodass Nutzer per Sprachbefehl auf App-Funktionen zugreifen können. Wenn ein Nutzer eine App-Aktion aufruft, ordnet Assistant die Abfrage einem integrierten Intent (BII) zu, der in der Ressource shortcuts.xml
Ihrer App deklariert ist, und startet Ihre App auf dem angeforderten Bildschirm.
Sie deklarieren die Unterstützung für BIIs in Ihrer App mit Android-capability
-Elementen.
Wenn du deine App über die Google Play Console hochlädst, registriert Google die in der App deklarierten Funktionen und stellt sie Nutzern für den Zugriff über Assistant zur Verfügung.
- Ein Nutzer löst Assistant aus und sendet eine Sprachnachricht für eine bestimmte App.
- Assistant gleicht die Anfrage mit einem vortrainierten Modell (BII) ab und extrahiert alle von BII unterstützten Parameter.
- In diesem Beispiel ordnet Assistant die Abfrage der
GET_CHARGING_STATION
-BII zu, extrahiert den Standortparameter „SFO“ und übersetzt den Standort in seine Geokoordinaten. - Die App wird über ihre Auftragsausführungsdefinition für diese BII ausgelöst.
- Die App verarbeitet die Auftragsausführung und zeigt Ladestationen im Infotainmentsystem des Fahrers an.
Einschränkungen
Für Autoimplementierungen von App-Aktionen gelten die folgenden Einschränkungen:
Aktionen in Auto-Apps müssen über Deeplinks von Android ausgeführt werden. Informationen zu App Actions-Auftragsausführungen finden Sie unter Auftragsausführungsdetails für integrierte Intents bereitstellen.
In Fahrzeugimplementierungen werden nur die folgenden BIIs unterstützt:
- Parkplatz –
GET_PARKING_FACILITY
- Wird geladen –
GET_CHARGING_STATION
- Parkplatz –
Voraussetzungen
So bereiten Sie Ihre Auto-App für App-Aktionen vor:
- die allgemeinen Anforderungen an Android-Apps für App Actions erfüllen.
- Fügen Sie die Abhängigkeit der Auto-App-Bibliothek hinzu. Weitere Informationen finden Sie unter Abhängigkeiten deklarieren.
Absicht und Auftragsausführung bestimmen
Wenn du eine Auto-App mit App Actions per Sprachbefehl aktivieren möchtest, musst du zuerst ermitteln, welche Sprachbefehle oder Intents des Nutzers deine App unterstützt. Anschließend definieren Sie für jeden Intent eine Auftragsausführung, um anzugeben, wie Ihre App die Anfrage erfüllen soll.
Welche Intents unterstützt deine Auto-App?
App Actions bietet vortrainierte Sprachmodelle, sogenannte integrierte Intents (BII), die die Sprachbefehle eines Nutzers verstehen und interpretieren können, wenn er „Hey Google“ sagt. Um auf Sprachanfragen zu antworten, deklarieren Sie Assistant einfach die BIIs, die Ihre App unterstützt. Wenn Sie beispielsweise möchten, dass Ihre App bei der Suche nach einem Parkplatz unterstützt wird, implementieren Sie die
GET_PARKING_FACILITY
-BII. Alternativ können SieGET_CHARGING_STATION
BII implementieren, um Nutzern die Suche nach Ladestationen für Elektroautos zu erleichtern.Wie soll Ihre App jeden Intent erfüllen?
Ihre App führt die Sprachanfrage aus, indem sie sich auf dem entsprechenden Bildschirm startet. App Actions stellt für die Auftragsausführung Parameter bereit, die aus der Nutzeranfrage extrahiert wurden. So können Sie Ihre Antwort an die Anforderungen des Nutzers anpassen.
App Actions einbinden
Nachdem Sie Ihre Strategie für die Auftragsausführung festgelegt haben, führen Sie die folgenden Schritte aus, um die Auto-App per Sprachbefehl zu aktivieren:
Öffnen Sie Ihre Hauptaktivität
AndroidManifest.xml
und deklarieren Sie die Unterstützung für Android-Verknüpfungen. Mitcapability
-Verknüpfungselementen erklären Sie gegenüber Assistant die BIIs, die Ihre App unterstützt. Weitere Informationen finden Sie unter Funktionen hinzufügen.<!-- AndroidManifest.xml --> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
Als Nächstes fügen Sie
AndroidManifest.xml
ein<intent-filter>
-Element hinzu. Dadurch kann Assistant Deeplinks verwenden, um eine Verbindung zu den Inhalten Ihrer App herzustellen.Bei Android Auto-Auftragsausführung ist das
<intent-filter>
mit der mobilen App identisch.Bei Android Automotive OS wird Assistant durch die
CarAppService
-Sitzung Ihrer App ausgelöst. Damit eine Sitzung den Deeplink auslöst, geben Sie im<activity>
-Element vonAndroidManifest.xml
ein<intent-filter>
an.
<!-- AndroidManifest.xml --> <activity ... android:name="androidx.car.app.activity.CarAppActivity"> ... <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="YOUR_SCHEME" android:host="YOUR_HOST" /> </intent-filter> </activity>
Wenn Sie noch keine
shortcuts.xml
-Datei für dasres/xml
-Verzeichnis Ihrer Anwendung haben, erstellen Sie ein neues. Informationen dazu, wie Android-Tastenkombinationen in App Actions verwendet werden, findest du unter shortcuts.xml erstellen.Implementieren Sie in
shortcuts.xml
einencapability
für die ausgewählte BII. Als Nächstes fügen Sie ein verschachteltes<intent>
hinzu, um die Anwendungsausführung zu definieren.<!-- shortcuts.xml --> <?xml version="1.0" encoding="utf-8"?> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <capability android:name="actions.intent.GET_PARKING_FACILITY"> <intent> <url-template android:value="YOUR_SCHEME://YOUR_HOST{?name,address,disambiguatingDescription,latitude,longitude}"> <!-- Facility name, e.g. "Googleplex" --> <parameter android:name="parkingFacility.name" android:key="name"/> <!-- Address, e.g. "1600 Amphitheatre Pkwy, Mountain View, CA 94043" --> <parameter android:name="parkingFacility.address" android:key="address"/> <!-- Disambiguate the type of service, e.g. "valet" --> <parameter android:name="parkingFacility.disambiguatingDescription" android:key="disambiguatingDescription"/> <!-- Latitude, e.g. "37.3861" --> <parameter android:name="parkingFacility.geo.latitude" android:key="latitude"/> <!-- Longitude, e.g. "-122.084" --> <parameter android:name="parkingFacility.geo.longitude" android:key="longitude"/> </intent> </capability> </shortcuts>
Aktualisieren Sie zum Schluss die
Session()
-Logik Ihrer Auto-App, damit die eingehende Auftragsausführung durch App-Aktionen verarbeitet werden kann. Die folgenden Beispiele zeigen die Intent-Handhabung fürSession.onCreateScreen()
undSession.onNewIntent()
.onCreateScreen().
Kotlin
@Override fun onCreateScreen(@NonNull intent: Intent): Screen { if (intent.getData() != null) { val uri: Uri = intent.getData() // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
Java
@Override public Screen onCreateScreen(@NonNull Intent intent) { if (intent.getData() != null) { Uri uri = intent.getData(); // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
onNewIntent()
Kotlin
@Override fun onNewIntent(@NonNull intent: Intent): Screen { if (intent.getData() != null) { val uri: Uri = intent.getData() // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
Java
@Override public void onNewIntent(@NonNull Intent intent) { if (intent.getData() != null) { Uri uri = intent.getData(); // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
App als Vorschau ansehen, testen und veröffentlichen
App Actions bietet Tools zum Ansehen und Testen Ihrer App. Informationen zu diesen Tools und Details zur Veröffentlichung Ihrer sprachgesteuerten Auto-App im Play Store finden Sie in der Übersicht zu App Actions.