Sterowanie głosem umożliwia kierowcom wykonywanie zadań bez zdejmowania rąk od kół samochodu czy oderwania wzroku od drogi. Dzięki akcjom w aplikacjach samochodowych kierowcy mogą używać Asystenta Google do sterowania aplikacjami na Androida w systemie multimedialnym na przykład „OK Google, znajdź parking przy ulicy w aplikacji ExampleApp”.
Akcje w aplikacji działają z aplikacjami samochodowymi zawierającymi ciekawe miejsca. W tym przewodniku omawiamy: konkretne wymagania i ograniczenia dotyczące integrowania akcji w aplikacji z ważnym miejscem; .
Jak to działa
Akcje w aplikacji rozszerzają funkcje aplikacji o Asystenta, dzięki czemu użytkownicy mogą:
uzyskiwać dostęp do funkcji aplikacji za pomocą głosu. Gdy użytkownik wywoła działanie w aplikacji,
Asystent dopasowuje zapytanie do intencji wbudowanej (BII) zadeklarowanego w
shortcuts.xml
i uruchomi aplikację na żądanym ekranie.
Deklarujesz obsługę BII w aplikacji za pomocą elementów Androida capability
.
Gdy przesyłasz aplikację przy użyciu Konsoli Google Play, Google rejestruje
funkcje zadeklarowane w aplikacji i udostępniane użytkownikom
od Asystenta.
- Użytkownik uruchamia Asystenta i pyta o głos konkretnej aplikacji.
- Asystent dopasowuje żądanie do wytrenowanego modelu (BII) i wyodrębnia wszystkie parametry obsługiwane przez BII.
- W tym przykładzie Asystent dopasowuje zapytanie do zapytania
GET_CHARGING_STATION
BII, wyodrębnia parametr lokalizacji „SFO” i tłumaczy lokalizację na jego współrzędnych geograficznych. - Aplikacja jest aktywowana przez definicję realizacji tego zamówienia BII.
- Aplikacja przetwarza realizację zamówienia, wyświetlając opcje stacji ładowania w system multimedialny kierowcy.
Ograniczenia
Implementacje działań w aplikacji w samochodzie mają te ograniczenia:
Działania w aplikacji samochodowej muszą być wykonywane za pomocą precyzyjnych linków na Androidzie. Informacje na temat dotyczące realizacji działań w aplikacji, zobacz Podaj szczegóły realizacji dla intencji wbudowanych.
Implementacje w samochodzie obsługują tylko te identyfikatory BIT:
- Parking –
GET_PARKING_FACILITY
- Ładowanie –
GET_CHARGING_STATION
- Parking –
Wymagania
Aby przygotować aplikację samochodu do działania w aplikacji, wykonaj te czynności:
- spełniać ogólne wymagania dotyczące aplikacji na Androida dla akcji w aplikacji;
- Uwzględnij zależność biblioteki aplikacji samochodu. Więcej informacji: Deklarowanie zależności.
Określenie zamiaru i realizacji
Aby za pomocą komend głosowych włączyć aplikację w samochodzie, określ polecenia głosowe lub zamiary użytkowników obsługiwane przez aplikację. Następnie definiujesz dla każdej intencji, która pozwala określić, w jaki sposób aplikacja powinna spełnić to żądanie.
Jakie intencje obsługuje Twoja aplikacja w samochodzie?
Akcje w aplikacji udostępniają wytrenowane modele głosu, nazywane intencjami wbudowanymi (BII) która rozumie i interpretuje polecenia głosowe, „OK Google” Żeby odpowiadać na prośby głosowe, po prostu zadeklaruj, co ma zrobić Asystent BII obsługiwane przez aplikację. Jeśli na przykład chcesz, aby aplikacja pomagała przy wyszukiwaniu parkingu, implementujesz
GET_PARKING_FACILITY
BII. Możesz też wdrożyćGET_CHARGING_STATION
BII, aby ułatwić użytkownikom stacji ładowania samochodów.W jaki sposób aplikacja powinna spełniać poszczególne intencje?
Aplikacja wykonuje żądanie głosowe, uruchamiając się na odpowiednim ekranu. Akcje w aplikacji udostępniają realizację przy użyciu parametrów wyodrębnionych z: aby dostosować swoją odpowiedź do potrzeb użytkownika.
Integrowanie akcji w aplikacji
Po określeniu strategii realizacji zamówień wykonaj te czynności, aby włączyć głosowe aplikacja do Twojego samochodu:
Otwórz główne działanie
AndroidManifest.xml
i zadeklaruj, że obsługujesz Androida. skrótów. Aby zadeklarować Asystenta, używaszcapability
elementów skrótów BII obsługiwane przez aplikację. Więcej informacji: Dodaj uprawnienia.<!-- AndroidManifest.xml --> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
Następnie dodaj element
<intent-filter>
doAndroidManifest.xml
. Ten umożliwia Asystentowi używanie precyzyjnych linków do łączenia się z treściami aplikacji.W przypadku realizacji transakcji dotyczącej Androida Auto
<intent-filter>
jest taki sam jak aplikacji mobilnej.W przypadku systemu operacyjnego Android Automotive uruchamia się sesja
CarAppService
aplikacji Asystent. Aby umożliwić sesji wywoływanie precyzyjnego linku, podaj w nim element<intent-filter>
w elemencie<activity>
elementuAndroidManifest.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>
Jeśli nie masz jeszcze pliku
shortcuts.xml
,res/xml
aplikacji utwórz nowy katalog. Informacje o sposobie korzystania z akcji w aplikacji Skróty na Androida znajdziesz w sekcji Tworzenie skrótów.xml.W narzędziu
shortcuts.xml
zaimplementujcapability
dla wybranego typu BII. Następnie dodaj zagnieżdżoną właściwość<intent>
, aby określić 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 funkcje logiczne
Session()
aplikacji samochodu, aby obsługiwała przychodzącą aplikację Realizacja działań. Poniższe przykłady pokazują obsługę intencjiSession.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 podglądu i testowania aplikacji. Odwiedź Działania w aplikacji z omówieniem, gdzie znajdziesz informacje o tym narzędziu, a także szczegóły Jak opublikować aplikację samochodu z obsługą głosu w Sklepie Play.