Pemanggilan aplikasi latar depan

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:

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:

  1. Di file shortcuts.xml, tambahkan tag <intent> ke BII <capability> yang ingin Anda mendukung pemanggilan aplikasi latar depan.
  2. Dalam tag <intent>, tambahkan tag <extra>.
  3. Pada tag <extra>, tetapkan android:key ke "requiredForegroundActivity", dan tetapkan android: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
  4. Pada aktivitas latar depan yang Anda tentukan untuk "requiredForegroundActivity", implementasikan metode onNewIntent() untuk menangani intent deep link dengan kumpulan tanda SINGLE_TOP. Asisten meneruskan intent deep link dengan tanda ini sebagai fulfillment saat aktivitas yang ditentukan ada di latar depan.
  5. 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

Dalam setelan perangkat, pengguna harus mengaktifkan &#39;Gunakan teks dari layar&#39;
            agar pemanggilan aplikasi latar depan berfungsi.

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:

  1. Ikuti petunjuk di bagian Izin pengguna untuk mengaktifkan setelan perangkat Gunakan teks dari layar.
  2. Buka aplikasi menurut aktivitas yang Anda cantumkan sebagai aktivitas latar depan yang diperlukan.
  3. 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.