Intents für Navigations-Apps unter Android Automotive OS testen

Testen Sie die Interoperabilität von Google Assistant und Google Maps mit benutzerdefinierten Apps unter Android Automotive OS.

Übersicht

In dieser Anleitung wird beschrieben, wie Sie eine Android Automotive-Instanz mit integrierten Google-Diensten einrichten und ausführen. In diesem Leitfaden wird auch beschrieben, wie Sie die Google-Drittanbieter-APIs für die Verwendung mit Navigations- und Sprachlösungen testen.

Weitere Informationen zu diesen APIs finden Sie unter Implement navigation app intents und Google Maps for Android Automotive Intents.

Intent-Datenfluss

Wie gezeigt, können Sie drei Arten von Intents verwenden, um die Interaktion zwischen Assistent und Navigation zu beschreiben: Navigation, Suche und benutzerdefinierte Aktionen. In diesem Abschnitt wird beschrieben, wie Sie die Intents mit Google Maps testen. Außerdem wird beschrieben, wie Sie eine benutzerdefinierte Navigationsanwendung einbinden, um Intents von Google Assistant zu empfangen.

Einrichten

So gehts:

  1. Laden Sie Android Studio herunter und installieren Sie es.
  2. Öffnen Sie Tools > Device Manager (Tools > Geräteverwaltung) und fügen Sie das Bild Automotive (1408p landscape) with Google Play (Automotive (1408p im Querformat) mit Google Play) hinzu.
  3. Starten Sie das Emulator-Image und melden Sie sich bei Google Play an. Suchen Sie nach Google Assistant und aktualisieren Sie die App.
  4. Entpacken Sie den Inhalt unseres Demoprojekts und öffnen Sie das Projekt in Android Studio (File > Open...).
  5. Wählen Sie Run > Run automotive aus, um die Demoanwendung im Emulator zu installieren und zu starten.

Demo

Unter Intents für Navigations-Apps implementieren und Google Maps für Android Automotive-Intents werden die drei Arten von Intents beschrieben, die Sie ausführen können: Navigation, Suche und benutzerdefinierte Aktion.

Hauptaktivität der Demoanwendung
Hauptaktivität der Demoanwendung

Google Maps führt die ausgelösten Vorgänge aus.

So geben Sie die Demoanwendung als Empfänger der von Google Assistant ausgelösten Intents an:

  1. Gehen Sie zu Einstellungen > Google > Google Assistant > Standard-Navigations-App.

    Standardmäßige Navigations-App auswählen
    Abbildung 1. Wählen Sie die standardmäßige Navigations-App aus.
  2. Klicken Sie auf das Mikrofonsymbol und sprechen Sie eine Anfrage. Beispiel: „Restaurants in der Nähe“. Wenn das Mikrofon nicht wie erwartet funktioniert, lesen Sie den Abschnitt Erweiterte Steuerelemente, Einstellungen und Hilfe. Der Intent-URI wird von Google Assistant an die Navigations-App gesendet, um weiter verarbeitet zu werden.

    Ausgabe des von Google Assistant generierten Intents
    Abbildung 2. Ausgabe des von Google Assistant generierten Intents.

Technische Details

Mit der Android Debug Bridge (adb) können Sie Intents über die Konsole auslösen. Weitere Informationen finden Sie unter gas-intents-console-tests.txt.

Wenn Sie festlegen möchten, dass eine Anwendung Intents von Google Assistant empfangen kann, fügen Sie diesen Code in die Datei AndroidManifest.xml der Navigationsanwendung ein:

   <!-- Navigation Intent -->
    <intent-filter>
      <action android:name="androidx.car.app.action.NAVIGATE" />
      <category android:name="android.intent.category.DEFAULT"/>
      <data android:scheme="geo" />
    </intent-filter>

    <!-- Search Intent -->
    <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT"/>
      <data android:scheme="geo" />
    </intent-filter>

    <!-- Custom Action Intents -->
    <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT"/>
      <data android:scheme="geo.action" />
    </intent-filter>

Wenn Sie die App unter Einstellungen > Google > Google Assistant > Standard-Navigations-App hinzufügen möchten, damit sie angezeigt und ausgewählt werden kann, fügen Sie Folgendes hinzu:

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.APP_MAPS" />
    </intent-filter>