Działania w aplikacji – samochody

Sterowanie głosem umożliwia kierowcom wykonywanie zadań bez odrywania rąk od kierownicy i od wzroku od drogi. Dzięki Akcji w aplikacjach samochodowych kierowcy mogą za pomocą Asystenta Google sterować aplikacjami na Androida w systemie multimedialnym. Powiedz np. „OK Google, znajdź parking uliczny w aplikacji ExampleApp”.

Działania w aplikacji działają z aplikacjami samochodowymi ważnych miejsc. W tym przewodniku omawiamy konkretne wymagania i ograniczenia dotyczące integracji działań w aplikacji z aplikacją z ważnymi miejscami.

Jak to działa

Działania w aplikacji rozszerzają funkcje aplikacji o Asystenta, umożliwiając użytkownikom dostęp do funkcji aplikacji za pomocą głosu. Gdy użytkownik wywołuje akcję w aplikacji, Asystent dopasowuje zapytanie do intencji wbudowanej (BII) zadeklarowanej w zasobie shortcuts.xml aplikacji i uruchamia aplikację na wybranym ekranie.

Deklarujesz obsługę identyfikatorów BII w aplikacji, korzystając z elementów Androida capability. Gdy przesyłasz aplikację przy użyciu Konsoli Google Play, Google rejestruje uprawnienia zadeklarowane w aplikacji i udostępnia je użytkownikom za pomocą Asystenta.

Wykres przedstawiający realizację transakcji sprzedaży samochodu.

  1. Użytkownik wywołuje Asystenta i wydaje żądanie głosowe związane z konkretną aplikacją.
  2. Asystent dopasowuje żądanie do wytrenowanego modelu (BII) i wyodrębnia wszystkie parametry obsługiwane przez BII.
  3. W tym przykładzie Asystent dopasowuje zapytanie do identyfikatora analityki biznesowej GET_CHARGING_STATION, wyodrębnia parametr lokalizacji „SFO” i tłumaczy lokalizację na jej współrzędne geograficzne.
  4. Aplikacja jest wyzwalana na podstawie definicji realizacji na potrzeby tego BII.
  5. Aplikacja przetwarza realizację, wyświetla opcje stacji ładowania w systemie multimedialnym kierowcy.

Ograniczenia

Implementacje akcji w aplikacji w samochodzie podlegają tym ograniczeniom:

Wymagania

Aby przygotować aplikację samochodu na działania w aplikacji:

  • spełniać ogólne wymagania dotyczące akcji w aplikacji na Androida.
  • Uwzględnia zależność z biblioteki aplikacji samochodu. Więcej informacji znajdziesz w sekcji Deklarowanie zależności.

Określanie zamiaru i spełnienia wymagań

Pierwszym krokiem do włączenia głosu w aplikacji samochodowej z akcjami w aplikacji jest określenie, które polecenia głosowe (czyli zamiary użytkownika) są obsługiwane przez tę aplikację. Następnie musisz zdefiniować realizację dla każdej intencji, aby określić sposób, w jaki aplikacja powinna spełnić to żądanie.

  • Które intencje obsługuje aplikacja samochodowa?

    Akcje w aplikacji udostępniają wytrenowane modele głosu, tzw. intencji wbudowane (BII), które rozumieją i interpretują polecenia głosowe użytkownika „OK Google”. Aby odpowiedzieć na żądania głosowe, po prostu zadeklaruj Asystentowi wskaźniki BII obsługiwane przez Twoją aplikację. Jeśli na przykład chcesz, aby aplikacja pomagała w znalezieniu parkingu, możesz wdrożyć klucz BII GET_PARKING_FACILITY. Możesz też wdrożyć GET_CHARGING_STATION BII, aby ułatwić użytkownikom znajdowanie stacji ładowania samochodów elektrycznych.

  • W jaki sposób aplikacja powinna spełnić poszczególne intencje?

    Aplikacja spełnia żądanie głosowe, uruchamiając się na odpowiednim ekranie. Działania w aplikacji udostępniają realizację z parametrami wyodrębnionymi z żądania użytkownika, dzięki czemu możesz dostosować odpowiedź do potrzeb użytkownika.

Zintegruj działania w aplikacji

Po ustaleniu strategii realizacji zamówień wykonaj te czynności, aby włączyć głosowo aplikację samochodu:

  1. Otwórz główną aktywność AndroidManifest.xml i zadeklaruj obsługę skrótów Androida. Za pomocą elementów skrótu capability możesz zadeklarować Asystentowi identyfikatory BII obsługiwane przez Twoją aplikację. Więcej informacji znajdziesz w sekcji Dodawanie uprawnień.

     <!-- AndroidManifest.xml -->
     <meta-data
         android:name="android.app.shortcuts"
         android:resource="@xml/shortcuts" />
    
  2. Następnie dodaj element <intent-filter> do tablicy AndroidManifest.xml. Umożliwi to Asystentowi korzystanie z precyzyjnych linków do łączenia się z treścią aplikacji.

    • W przypadku realizacji transakcji na Androida Auto element <intent-filter> jest taki sam jak Twoja aplikacja mobilna.

    • W przypadku systemu operacyjnego Android Automotive sesja CarAppService aplikacji uruchamia Asystenta. Aby umożliwić sesji wywołanie precyzyjnego linku, w elemencie <activity> elementu AndroidManifest.xml wskaż <intent-filter>.

    <!-- 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. Jeśli nie masz jeszcze pliku shortcuts.xml w katalogu res/xml aplikacji, utwórz nowy. Informacje o tym, jak akcje w aplikacji używają skrótów na Androida, znajdziesz w tym artykule.

    W shortcuts.xml zaimplementuj capability dla wybranego wskaźnika BII. Następnie dodaj zagnieżdżony element <intent>, by zdefiniować realizację aplikacji.

    <!-- 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. Na koniec zaktualizuj logikę Session() aplikacji samochodowej, aby obsługiwać przychodzącą realizację akcji w aplikacji. Te przykłady pokazują obsługę intencji dla Session.onCreateScreen() i Session.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
     ...
    }
    }
    

Wyświetlanie podglądu, testowanie i publikowanie aplikacji

Akcje w aplikacji udostępniają narzędzia do testowania i sprawdzania aplikacji. Odwiedź Przegląd działań w aplikacji, by uzyskać więcej informacji o tym narzędziu oraz dowiedzieć się, jak opublikować aplikację samochodową z obsługą głosu w Sklepie Play.