App-Aktionen für Autos

Mit der Sprachsteuerung können Fahrer Aufgaben erledigen, ohne die Hände vom Lenkrad oder den Blick von der Straße zu nehmen. Mit App Actions für Auto-Apps können Fahrer Gemini oder Google Assistant verwenden, um Android-Apps auf ihrem Infotainmentsystem zu steuern. Sie können beispielsweise „Hey Google, suche in BeispielApp nach Parkplätzen an der Straße“ sagen.

App Actions funktioniert mit POI-Apps für Autos. In dieser Anleitung werden die spezifischen Anforderungen und Einschränkungen für die Integration von App Actions in Ihre POI-App behandelt.

Funktionsweise

Mit App Actions können Sie die In-App-Funktionen auf Gemini oder Google Assistant ausweiten, sodass Nutzer per Sprachbefehl auf App-Funktionen zugreifen können. Wenn ein Nutzer eine App Action aufruft, ordnen Gemini oder Google Assistant die Anfrage einem integrierten Intent (Built-in Intent, BII) zu, der in der shortcuts.xml-Ressource Ihrer App deklariert ist, und starten Ihre App auf dem angeforderten Bildschirm.

Sie deklarieren die Unterstützung für BIIs in Ihrer App mit Android-Elementen vom Typ capability. Wenn Sie Ihre App über die Google Play Console hochladen, registriert Google die in Ihrer App deklarierten Funktionen und stellt sie Nutzern für den Zugriff über Gemini oder Google Assistant zur Verfügung.

Diagramm zur Auftragsausführung für Autos.

  1. Ein Nutzer löst Gemini oder Google Assistant aus und gibt einen Sprachbefehl für eine bestimmte App.
  2. Gemini oder Google Assistant ordnet die Anfrage einem vortrainierten Modell (BII) zu und extrahiert alle vom BII unterstützten Parameter.
  3. In diesem Beispiel ordnen Gemini oder Google Assistant die Anfrage der GET_CHARGING_STATION-BII zu, extrahieren den Standortparameter „SFO“ und übersetzen den Standort in seine geografischen Koordinaten.
  4. Die App wird über die Fulfillment-Definition für diesen BII ausgelöst.
  5. Die App verarbeitet die Auftragserfüllung und zeigt dem Fahrer im Infotainmentsystem Optionen für Ladestationen an.

Beschränkungen

Für die Implementierung von App Actions für Autos gelten die folgenden Einschränkungen:

Voraussetzungen

So bereiten Sie Ihre Auto-App für App Actions vor:

  • Erfüllen Sie die allgemeinen Anforderungen an Android-Apps für App Actions.
  • Fügen Sie die Abhängigkeit der Car App Library hinzu. Weitere Informationen finden Sie unter Abhängigkeiten deklarieren.

Absicht und Erfüllung bestimmen

Der erste Schritt, um eine Auto-App mit App Actions sprachgesteuert zu machen, besteht darin, festzulegen, welche Sprachbefehle oder Intents Ihre App unterstützt. Anschließend definieren Sie für jede Intention eine Ausführung, um anzugeben, wie Ihre App die Anfrage erfüllen soll.

  • Welche Intents werden von Ihrer Auto-App unterstützt?

    App Actions bietet vortrainierte Sprachmodelle, sogenannte integrierte Intents (Built-in Intents, BIIs), die Sprachbefehle von Nutzern verstehen und interpretieren können, wenn sie Hey Google sagen. Um auf Sprachanfragen zu reagieren, müssen Sie Gemini oder Google Assistant einfach die BIIs deklarieren, die Ihre App unterstützt. Wenn Ihre App beispielsweise bei der Suche nach einem Parkplatz helfen soll, implementieren Sie den BII GET_PARKING_FACILITY. Oder implementieren SieGET_CHARGING_STATION BII, damit Nutzer Ladestationen für Elektroautos finden können.

  • Wie sollte Ihre App die einzelnen Intents erfüllen?

    Ihre App erfüllt die Sprachanfrage, indem sie sich selbst auf dem entsprechenden Bildschirm startet. App Actions stellt Ihrer Auftragsausführung Parameter zur Verfügung, die aus der Nutzeranfrage extrahiert wurden. So können Sie Ihre Antwort an die Bedürfnisse des Nutzers anpassen.

App Actions einbinden

Nachdem Sie Ihre Fulfillment-Strategie festgelegt haben, gehen Sie so vor, um Ihre Auto-App für die Sprachsteuerung zu aktivieren:

  1. Öffnen Sie Ihre Hauptaktivität AndroidManifest.xml und deklarieren Sie die Unterstützung für Android-Verknüpfungen. Mit capability-Kürzelelementen deklarieren Sie gegenüber Gemini oder Google 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" />
    
  2. Fügen Sie als Nächstes ein <intent-filter>-Element zu AndroidManifest.xml hinzu. So können Gemini oder Google Assistant Deeplinks verwenden, um eine Verbindung zum Inhalt Ihrer App herzustellen.

    • Bei der Android Auto-Ausführung ist die <intent-filter> dieselbe wie Ihre mobile App.

    • Bei Android Automotive OS werden Gemini oder Google Assistant durch die CarAppService-Sitzungstrigger Ihrer App ausgelöst. Damit eine Sitzung Ihren Deeplink auslösen kann, geben Sie ein <intent-filter> im Element <activity> von AndroidManifest.xml 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>
    
  3. Wenn Sie noch keine shortcuts.xml-Datei im res/xml-Verzeichnis Ihrer App haben, erstellen Sie eine neue. Informationen dazu, wie App Actions Android-Verknüpfungen verwenden, finden Sie unter shortcuts.xml erstellen.

    Implementiere in shortcuts.xml ein capability für den ausgewählten BII. Fügen Sie als Nächstes ein verschachteltes <intent> hinzu, um die App-Ausfü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>
    
  4. Aktualisieren Sie schließlich die Session()-Logik Ihrer Auto-App, um die eingehende App Actions-Ausführung zu verarbeiten. In den folgenden Beispielen wird die Intent-Verarbeitung für Session.onCreateScreen() und Session.onNewIntent() veranschaulicht.

    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 in der Vorschau ansehen, testen und veröffentlichen

App Actions bietet Tools zum Anzeigen der Vorschau und zum Testen Ihrer App. Weitere Informationen zu diesen Tools und dazu, wie Sie Ihre sprachgesteuerte Auto-App im Google Play Store veröffentlichen, finden Sie in der Übersicht zu App Actions.