Testowanie interoperacyjności z usługami Google

Ten przewodnik zawiera opis konfigurowania i uruchamiania instancji Androida Automotive z wbudowanymi usługami Google. W tym przewodniku opisujemy też, jak testować interfejsy API Google innych firm do użytku z rozwiązaniami nawigacyjnymi i głosowymi.

Więcej informacji o tych interfejsach API znajdziesz w artykułach Implementowanie intencji aplikacji do nawigacji i Intencje Map Google na Androida Automotive.

Przepływ danych o zamiarach

Jak widać, do opisania interakcji między aplikacją asystenta a Mapami Google możesz użyć 3 rodzajów intencji: nawigacji, wyszukiwania i działania niestandardowego. Opisują one też interakcję między Gemini (lub Asystentem Google) a aplikacją nawigacyjną.

Przepływ danych o zamiarach

Z tego artykułu dowiesz się, jak testować intencje z aplikacji asystenta w Mapach Google. Opisujemy też, jak zintegrować aplikację do nawigacji, aby otrzymywać intencje z Gemini, Asystenta Google lub innych aplikacji asystenta.

Konfiguracja

Aby rozpocząć:

  1. Pobierz i zainstaluj Android Studio.
  2. Otwórz Narzędzia > Menedżer urządzeń i dodaj obraz Automotive (1408p w orientacji poziomej) z Google Play.
  3. Uruchom obraz emulatora i zaloguj się w Google Play. Wyszukaj i zaktualizuj Gemini lub Asystenta Google w zależności od tego, który z nich został wybrany jako domyślny asystent.
  4. Wyodrębnij zawartość przykładowego projektu aplikacji i otwórz projekt w Android Studio (Plik > Otwórz…).
  5. Aby zainstalować i uruchomić aplikację demonstracyjną w emulatorze, kliknij Run > Run automotive (Uruchom > Uruchom aplikację samochodową).

Prezentacja

Implementowanie intencji aplikacji do nawigacji i Intencje Map Google na Androida Automotive opisują 3 typy intencji, które możesz wykonać: nawigacja, wyszukiwanie i działanie niestandardowe.

Główna aktywność aplikacji demonstracyjnej
Główna aktywność aplikacji w wersji demonstracyjnej

Mapy Google wykonują wywołane operacje.

Aby określić aplikację demonstracyjną jako odbiorcę intencji wywoływanych przez Gemini lub Asystenta Google:

  1. Otwórz Ustawienia > Google > Gemini (lub Asystent Google) > Domyślna aplikacja do nawigacji.

    Wybieranie domyślnej aplikacji do nawigacji
    Rysunek 1. Wybierz domyślną aplikację do nawigacji.
  2. Kliknij ikonę mikrofonu i wypowiedz zapytanie. Na przykład „Restauracje w pobliżu”. Jeśli mikrofon nie działa zgodnie z oczekiwaniami, zapoznaj się z sekcją Rozszerzone ustawienia i pomoc. Identyfikator URI intencji jest wysyłany przez Gemini lub Asystenta Google do aplikacji do nawigacji w celu dalszego przetwarzania.

    Dane wyjściowe intencji wygenerowanej przez Asystenta Google
    Rysunek 2. Dane wyjściowe Gemini lub Asystenta Google wygenerowane przez intencję.

Szczegóły techniczne

Za pomocą Android Debug Bridge (adb) możesz wywoływać intencje z konsoli. Więcej informacji znajdziesz w artykule gas-intents-console-tests.txt.

Aby wskazać, że aplikacja może odbierać intencje z Gemini lub Asystenta Google, umieść ten kod w pliku AndroidManifest.xml aplikacji do nawigacji:

   <!-- 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>

Aby dodać aplikację do Ustawienia > Google > Gemini (lub Asystent Google) > Domyślna aplikacja do nawigacji, tak aby była widoczna i można ją było wybrać, dodaj:

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