Action Aplikasi memungkinkan pengguna berbicara dengan Asisten Google dan langsung melompat ke tujuan aplikasi tertentu saat mereka mengucapkan sesuatu seperti, "Ok Google, pesankan transportasi online Aplikasi Contoh". Dengan pemanggilan aplikasi latar depan, Anda dapat lebih meningkatkan pengalaman saat pengguna sudah membuka aplikasi.
Pemanggilan aplikasi latar depan memungkinkan intent bawaan (BII) dicocokkan tanpa perlu menyebutkan nama aplikasi saat aktivitas tertentu berada di latar depan perangkat.
Misalnya, pengguna memiliki aplikasi transportasi online Anda di latar depan dan mengucapkan atau mengetik, "Pesankan saya transportasi online ke Mountain View" ke Asisten Google. Aplikasi Anda menggunakan input ini untuk menetapkan kolom tujuan ke Mountain View. Kemudian, saat pengguna mengatakan atau mengetik, "Pesan saya dari SFO", aplikasi Anda dapat menetapkan lokasi pengambilan sekaligus mempertahankan status aplikasi.
Batasan
Pemanggilan aplikasi latar depan hanya tersedia untuk BII berikut:
actions.intent.CREATE_MONEY_TRANSFER
actions.intent.CREATE_TAXI_RESERVATION
actions.intent.OPEN_APP_FEATURE
actions.intent.ORDER_MENU_ITEM
actions.intent.PAUSE_EXERCISE
actions.intent.RECORD_EXERCISE
actions.intent.RECORD_FOOD_OBSERVATION
actions.intent.RESUME_EXERCISE
actions.intent.START_EXERCISE
actions.intent.STOP_EXERCISE
Untuk mendapatkan dukungan lokalitas dan contoh kueri yang terkait dengan pemanggilan aplikasi latar depan untuk BII tertentu, lihat referensi intent bawaan.
Mendukung pemanggilan aplikasi latar depan
Menambahkan dukungan untuk pemanggilan aplikasi latar depan melibatkan penambahan perilaku fulfillment berdasarkan aktivitas latar depan yang diinginkan. Saat aktivitas tersebut berada di latar depan dan Action Aplikasi dipanggil, Asisten akan meneruskan intent deep link dengan flag tambahan ke aktivitas tersebut sehingga aplikasi Anda dapat memperbarui statusnya.
Untuk menerapkan pemanggilan aplikasi latar depan untuk BII, lakukan hal berikut:
- Di file
shortcuts.xml
, tambahkan tag<intent>
ke BII<capability>
yang ingin Anda mendukung pemanggilan aplikasi latar depan. - Dalam tag
<intent>
, tambahkan tag<extra>
. - Pada tag
<extra>
, tetapkanandroid:key
ke"requiredForegroundActivity"
, dan tetapkanandroid:value
ke aktivitas yang Anda inginkan untuk berada di latar depan. Tentukan aktivitas tanpa singkatan class, menggunakan nama paket aplikasi Anda, diikuti dengan garis miring (/), diikuti dengan nama aktivitas:APP_PACKAGE_NAME/ACTIVITY_NAME
- Pada aktivitas latar depan yang Anda tentukan untuk
"requiredForegroundActivity"
, implementasikan metodeonNewIntent()
untuk menangani intent deep link dengan kumpulan tandaSINGLE_TOP
. Asisten meneruskan intent deep link dengan tanda ini sebagai fulfillment saat aktivitas yang ditentukan ada di latar depan. - Perlakukan panggilan ke
onNewIntent()
sebagai update untuk aktivitas latar depan Anda, dan kelola status dalam aktivitas tersebut menggunakan parameter yang diekstrak dari deep link.
Jika aplikasi Anda menggunakan aktivitas router untuk memungkinkan semua deep link eksternal memicu satu aktivitas router gatekeeping, lihat Menangani aktivitas router.
Contoh
Cuplikan berikut dari contoh file shortcuts.xml
menunjukkan cara menambahkan
atribut requiredForegroundActivity
:
<capability name="actions.intent.CREATE_TAXI_RESERVATION"> <!-- Trigger with foreground app invocation if MainActivity is in the foreground. --> <intent android:targetClass="com.example.app.MainActivity" android:targetPackage="com.example.app"> <parameter android:name="taxiReservation.dropoffLocation.name" android:key="dropoff" /> <extra android:key="requiredForegroundActivity" android:value="com.example.app/com.example.app.MainActivity" /> </intent> <!-- This won't trigger if MainActivity is in the foreground. --> <intent android:targetClass="com.example.app.MainActivity" android:targetPackage="com.example.app"> <parameter android:name="taxiReservation.dropoffLocation.name" android:key="dropoff" /> </intent> </capability>
Izin pengguna
Agar pemanggilan aplikasi latar depan berfungsi bagi pengguna, pengguna harus mengaktifkan setelan perangkat Gunakan teks dari layar. Lokasi dan nama persis setelan ini dapat bervariasi menurut OEM atau produsen perangkat. Misalnya, setelan perangkat mungkin disebut Gunakan konteks layar di perangkat pengguna.
Untuk mencapai setelan Android ini di ponsel Pixel, buka Setelan > Aplikasi & notifikasi > Aplikasi default > Aplikasi bantuan terlebih dahulu. Kemudian, di layar Bantuan dan input suara, aktifkan Gunakan teks dari layar.
Menguji pemanggilan
Untuk mencoba pemanggilan aplikasi latar depan, ikuti langkah-langkah berikut:
- Ikuti petunjuk di bagian Izin pengguna untuk mengaktifkan setelan perangkat Gunakan teks dari layar.
- Buka aplikasi menurut aktivitas yang Anda cantumkan sebagai aktivitas latar depan yang diperlukan.
- Tekan & tahan tombol layar utama untuk membuka Asisten sebagai overlay di aplikasi saat ini. Berikan kueri yang sesuai dengan BII yang Anda implementasikan tanpa menyebutkan nama aplikasi itu sendiri. Jika berhasil, aplikasi akan diupdate sendiri berdasarkan kueri, sekaligus mempertahankan status dan tanpa memulai ulang aktivitas.
Menangani aktivitas router
Beberapa aplikasi menangani semua deep link eksternal menggunakan aktivitas router gatekeeping. Aktivitas router kemudian memulai aktivitas logika bisnis yang sesuai (setelah pemeriksaan dan validasi) dan mengembalikan aktivitas logika bisnis ke latar depan.
Memicu deep link dapat menyebabkan aktivitas router ditambahkan ke bagian atas tumpukan tugas, di atas aktivitas latar depan. Untuk aplikasi yang menggunakan aktivitas router, Anda harus memastikan bahwa aktivitas router mengirimkan intent yang dikirimkan oleh Asisten Google ke instance aktivitas latar depan saat ini. Cara Anda mencapai persyaratan ini akan berubah bergantung pada tempat aktivitas router dimulai.
Jika router dimulai dalam stack tugas yang sama dengan aktivitas logika bisnis Anda,
teruskan intent menggunakan bitwise OR dari SINGLE_TOP
, CLEAR_TOP
,
dan NEW_TASK
:
Kotlin
Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK
Java
Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK
Jika router dimulai dalam stack tugas terpisah dari aktivitas logika
bisnis Anda, teruskan intent dengan flag SINGLE_TOP
ke aktivitas
logika bisnis.