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.
- Użytkownik wywołuje Asystenta i wydaje żądanie głosowe związane z konkretną aplikacją.
- Asystent dopasowuje żądanie do wytrenowanego modelu (BII) i wyodrębnia wszystkie parametry obsługiwane przez BII.
- 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. - Aplikacja jest wyzwalana na podstawie definicji realizacji na potrzeby tego BII.
- Aplikacja przetwarza realizację, wyświetla opcje stacji ładowania w systemie multimedialnym kierowcy.
Ograniczenia
Implementacje akcji w aplikacji w samochodzie podlegają tym ograniczeniom:
Akcje w aplikacji samochodowej muszą być wykonywane za pomocą precyzyjnych linków na Androida. Informacje o realizacji akcji w aplikacji znajdziesz w sekcji Podawanie szczegółów realizacji w przypadku intencji wbudowanych.
Implementacje w samochodzie obsługują tylko te identyfikatory BiI:
- Parking –
GET_PARKING_FACILITY
- Ładowanie –
GET_CHARGING_STATION
- Parking –
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:
Otwórz główną aktywność
AndroidManifest.xml
i zadeklaruj obsługę skrótów Androida. Za pomocą elementów skrótucapability
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" />
Następnie dodaj element
<intent-filter>
do tablicyAndroidManifest.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>
elementuAndroidManifest.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>
Jeśli nie masz jeszcze pliku
shortcuts.xml
w katalogures/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
zaimplementujcapability
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>
Na koniec zaktualizuj logikę
Session()
aplikacji samochodowej, aby obsługiwać przychodzącą realizację akcji w aplikacji. Te przykłady pokazują obsługę intencji dlaSession.onCreateScreen()
iSession.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.