Działania w aplikacji – samochody

Sterowanie głosowe umożliwia kierowcom wykonywanie zadań bez odrywania rąk od kierownicy i wzroku od drogi. Dzięki akcjom w aplikacji samochodowej kierowcy mogą używać Gemini lub Asystenta Google do sterowania aplikacjami na Androida w systemie multimedialnym, wypowiadając polecenia takie jak „OK Google, znajdź parking przy ulicy w ExampleApp”.

Akcje w aplikacji działają z aplikacjami samochodowymi, które wskazują ważne miejsca (POI). Z tego przewodnika dowiesz się, jakie są konkretne wymagania i ograniczenia dotyczące integracji akcji w aplikacji z aplikacją wskazującą ciekawe miejsca.

Jak to działa

Akcje w aplikacji rozszerzają funkcje aplikacji na Gemini lub Asystenta Google, umożliwiając użytkownikom dostęp do funkcji aplikacji za pomocą głosu. Gdy użytkownik wywoła działanie w aplikacji, Gemini lub Asystent Google dopasuje zapytanie do wbudowanej intencji (BII) zadeklarowanej w pliku shortcuts.xml aplikacji i uruchomi aplikację na żądanym ekranie.

Obsługę wbudowanych intencji deklarujesz w aplikacji za pomocą elementów capability na Androidzie. Gdy prześlesz aplikację za pomocą Konsoli Google Play, Google zarejestruje zadeklarowane w niej możliwości i udostępni je użytkownikom w Gemini lub Asystencie Google.

Wykres przedstawiający realizację zamówień na samochody.

  1. Użytkownik aktywuje Gemini lub Asystenta Google i wysyła prośbę głosową dotyczącą konkretnej aplikacji.
  2. Gemini lub Asystent Google dopasowuje prośbę do wytrenowanego modelu (wbudowanej intencji) i wyodrębnia wszystkie parametry obsługiwane przez tę intencję.
  3. W tym przykładzie Gemini lub Asystent Google dopasowuje zapytanie do GET_CHARGING_STATION wbudowanej intencji, wyodrębnia parametr lokalizacji „SFO” i tłumaczy lokalizację na jej współrzędne geograficzne.
  4. Aplikacja jest aktywowana za pomocą definicji realizacji dla tej wbudowanej intencji.
  5. Aplikacja przetwarza realizację i wyświetla opcje stacji ładowania w systemie multimedialnym kierowcy.

Ograniczenia

Implementacje akcji w aplikacji w samochodzie mają te ograniczenia:

Wymagania

Aby przygotować aplikację samochodową do akcji w aplikacji:

Określanie intencji i realizacji

Pierwszym krokiem do włączenia obsługi głosowej w aplikacji samochodowej za pomocą akcji w aplikacji jest określenie, które polecenia głosowe użytkownika lub intencje są obsługiwane przez aplikację. Następnie definiujesz realizację dla każdej intencji, aby określić, jak aplikacja ma spełnić prośbę.

  • Jakie intencje obsługuje Twoja aplikacja samochodowa?

    Akcje w aplikacji udostępniają wytrenowane modele głosu, zwane intencjami wbudowanymi, które mogą rozumieć i interpretować polecenia głosowe użytkownika, gdy mówi on, „OK Google”. Aby odpowiadać na prośby głosowe, wystarczy zadeklarować w Gemini lub Asystencie Google wbudowane intencje, które obsługuje Twoja aplikacja. Jeśli na przykład chcesz, aby aplikacja pomagała w znajdowaniu miejsc parkingowych, zaimplementuj GET_PARKING_FACILITY wbudowaną intencję. Możesz też zaimplementowaćGET_CHARGING_STATION wbudowaną intencję, aby pomagać użytkownikom w znajdowaniu stacji ładowania samochodów elektrycznych.

  • Jak aplikacja ma realizować każdą intencję?

    Aplikacja realizuje prośbę głosową, uruchamiając się na odpowiednim ekranie. Akcje w aplikacji przekazują do realizacji parametry wyodrębnione z prośby użytkownika, co umożliwia dostosowanie odpowiedzi do potrzeb użytkownika.

Integracja akcji w aplikacji

Po określeniu strategii realizacji wykonaj te czynności, aby włączyć obsługę głosową w aplikacji samochodowej:

  1. Otwórz główną aktywność AndroidManifest.xml i zadeklaruj obsługę skrótów na Androidzie. Za pomocą elementów skrótu capability deklarujesz w Gemini lub Asystencie Google wbudowane intencje, które obsługuje Twoja aplikacja. Więcej informacji znajdziesz w artykule Dodawanie możliwości.

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

    • W przypadku realizacji w Androidzie Auto element <intent-filter> jest taki sam jak w Twojej aplikacji mobilnej.

    • W przypadku systemu operacyjnego Android Automotive OS sesja CarAppService aplikacji aktywuje Gemini lub Asystenta Google. Aby sesja mogła aktywować precyzyjny link, określ element <intent-filter> w elemencie <activity> pliku AndroidManifest.xml.

    <!-- 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 w katalogu res/xml aplikacji nie masz jeszcze pliku shortcuts.xml, utwórz nowy. Więcej informacji o tym, jak akcje w aplikacji używają skrótów na Androidzie, znajdziesz w artykule Tworzenie pliku shortcuts.xml.

    W pliku shortcuts.xml zaimplementuj capability dla wybranej wbudowanej intencji. Następnie dodaj zagnieżdżony element <intent>, aby 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ę działań w aplikacji. Poniższe przykłady pokazują obsługę intencji w przypadku 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 wyświetlania podglądu i testowania aplikacji. Więcej informacji o tych narzędziach oraz o tym, jak opublikować w Sklepie Play aplikację samochodową z obsługą głosową, znajdziesz w artykule Omówienie akcji w aplikacji.