Kontrol suara memungkinkan pengemudi melakukan tugas tanpa harus melepaskan tangan dari kemudi atau mengalihkan pandangan dari jalan. Dengan Action Aplikasi untuk aplikasi mobil, pengemudi dapat menggunakan Asisten Google untuk mengontrol aplikasi Android di sistem infotainmen dengan mengucapkan hal-hal seperti, "Ok Google, temukan tempat parkir jalan di ExampleApp".
Action Aplikasi berfungsi dengan aplikasi mobil lokasi menarik (POI). Panduan ini mencakup persyaratan dan batasan khusus untuk mengintegrasikan Action Aplikasi ke dalam aplikasi POI Anda.
Cara kerjanya
Action Aplikasi memperluas fungsi dalam aplikasi ke Asisten sehingga pengguna dapat
mengakses fitur aplikasi menggunakan suara mereka. Saat pengguna memanggil Action Aplikasi,
Asisten akan mencocokkan kueri dengan intent bawaan (BII) yang dideklarasikan di resource
shortcuts.xml
aplikasi Anda, dan meluncurkan aplikasi di layar yang diminta.
Anda mendeklarasikan dukungan untuk BII di aplikasi Anda menggunakan elemen capability
Android.
Saat Anda mengupload
aplikasi menggunakan konsol Google Play, Google akan mendaftarkan kemampuan
yang dideklarasikan dalam aplikasi Anda dan membuatnya tersedia untuk diakses pengguna dari
Asisten.
- Pengguna memicu Asisten dan membuat permintaan suara untuk aplikasi tertentu.
- Asisten mencocokkan permintaan dengan model terlatih (BII), dan mengekstrak parameter apa pun yang didukung oleh BII.
- Dalam contoh ini, Asisten mencocokkan kueri dengan BII
GET_CHARGING_STATION
, mengekstrak parameter lokasi “SFO”, dan menerjemahkan lokasi ke koordinat geografisnya. - Aplikasi dipicu melalui definisi fulfillment untuk BII ini.
- Aplikasi memproses fulfillment, yang menampilkan opsi SPKLU di sistem infotainmen pengemudi.
Batasan
Implementasi mobil untuk Action Aplikasi memiliki batasan berikut:
Action Aplikasi Mobil harus dipenuhi menggunakan deep link Android. Untuk mengetahui informasi fulfillment Action Aplikasi, lihat Memberikan detail fulfillment untuk intent bawaan.
Implementasi mobil hanya mendukung BII berikut:
- Parkir -
GET_PARKING_FACILITY
- Pengisian daya -
GET_CHARGING_STATION
- Parkir -
Persyaratan
Lakukan langkah-langkah berikut untuk menyiapkan aplikasi mobil untuk Action Aplikasi:
- Memenuhi persyaratan aplikasi Android umum untuk Action Aplikasi.
- Menyertakan dependensi Library Aplikasi Mobil. Untuk mengetahui detailnya, baca Mendeklarasikan dependensi.
Menentukan intent dan fulfillment Anda
Langkah pertama untuk mengaktifkan fitur suara untuk aplikasi mobil dengan Action Aplikasi adalah menentukan perintah suara atau intent pengguna mana yang didukung aplikasi Anda. Kemudian, tentukan fulfillment untuk setiap intent guna menentukan cara aplikasi memenuhi permintaan tersebut.
Intent mana yang didukung oleh aplikasi mobil Anda?
Action Aplikasi menyediakan model suara terlatih, yang disebut intent bawaan (BII), yang dapat memahami dan menafsirkan perintah suara pengguna saat mereka mengucapkan, "Ok Google". Untuk merespons permintaan suara, Anda cukup mendeklarasikan ke BII yang didukung aplikasi Anda kepada Asisten. Misalnya, jika Anda ingin aplikasi membantu menemukan fasilitas parkir, Anda harus mengimplementasikan BII
GET_PARKING_FACILITY
. Atau, terapkanGET_CHARGING_STATION
BII untuk membantu pengguna menemukan SPKLU mobil listrik.Bagaimana sebaiknya aplikasi Anda memenuhi setiap intent?
Aplikasi Anda memenuhi permintaan suara dengan meluncurkan aplikasi itu sendiri ke layar yang sesuai. Action Aplikasi menyediakan fulfillment Anda dengan parameter yang diekstrak dari permintaan pengguna, memungkinkan Anda menyesuaikan respons Anda dengan kebutuhan pengguna.
Mengintegrasikan Action Aplikasi
Setelah menentukan strategi fulfillment Anda, ikuti langkah-langkah berikut untuk mengaktifkan aplikasi mobil Anda dengan suara:
Buka aktivitas utama
AndroidManifest.xml
dan deklarasikan dukungan untuk pintasan Android. Anda menggunakan elemen pintasancapability
untuk mendeklarasikan BII yang didukung aplikasi Anda kepada Asisten. Untuk informasi selengkapnya, lihat Menambahkan kemampuan.<!-- AndroidManifest.xml --> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
Selanjutnya, tambahkan elemen
<intent-filter>
keAndroidManifest.xml
. Ini memungkinkan Asisten menggunakan deep link untuk terhubung ke konten aplikasi Anda.Untuk fulfillment Android Auto,
<intent-filter>
sama dengan aplikasi seluler Anda.Untuk Android Automotive OS, sesi
CarAppService
aplikasi akan memicu Asisten. Untuk mengizinkan sesi memicu deep link Anda, tentukan<intent-filter>
dalam elemen<activity>
dariAndroidManifest.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>
Jika Anda belum memiliki file
shortcuts.xml
direktorires/xml
aplikasi Anda, buat file baru. Untuk informasi tentang cara Action Aplikasi menggunakan pintasan Android, lihat Membuat shortcuts.xml.Di
shortcuts.xml
, terapkancapability
untuk BII yang Anda pilih. Selanjutnya, tambahkan<intent>
bertingkat untuk menentukan fulfillment aplikasi.<!-- 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>
Terakhir, update logika
Session()
aplikasi mobil Anda untuk menangani fulfillment Action Aplikasi yang masuk. Contoh berikut menunjukkan penanganan intent untukSession.onCreateScreen()
, danSession.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 ... } }
Melihat pratinjau, menguji, dan memublikasikan aplikasi
Action Aplikasi menyediakan alat untuk melihat pratinjau dan menguji aplikasi Anda. Buka ringkasan Action Aplikasi untuk informasi tentang alat ini, dan untuk detail tentang cara memublikasikan aplikasi mobil Anda yang diaktifkan suara ke Play Store.