Menerapkan pintasan dinamis ke Asisten

Pintasan Android memberi pengguna metode cepat untuk melakukan tindakan atau mengakses konten dalam aplikasi. Asisten dapat secara proaktif menyarankan pintasan dinamis Android Anda kepada pengguna pada waktu yang relevan, sehingga memungkinkan pengguna menemukan dan memutar ulang fungsi yang diaktifkan suara dengan mudah.

Misalnya, Anda dapat mengirim pintasan untuk setiap catatan yang dibuat pengguna di aplikasi pencatat. Anda membuat link dinamis memenuhi syarat untuk ditampilkan di platform Google, seperti Asisten, dengan menambahkan library Jetpack Integrasi Pintasan Google ke project Anda. Library ini memungkinkan Asisten mengambil pintasan dinamis yang Anda kirim menggunakan class ShortcutManagerCompat, yang merupakan wrapper Jetpack untuk ShortcutManager API.

Saat Anda menggunakan library Integrasi Pintasan Google di aplikasi Anda, pintasan dinamis yang Anda kirim ke Google akan terlihat oleh pengguna sebagai saran pintasan suara di aplikasi Asisten. Anda dapat mengirim pintasan dinamis dalam jumlah tak terbatas ke Asisten menggunakan metode pushDynamicShortcut() dari library ShortcutManagerCompat.

Mengonfigurasi project pengembangan Anda

Menambahkan fungsi pintasan dinamis ke aplikasi Anda memerlukan library Integrasi Pintasan Google, yang merupakan library Android Jetpack. Bagian ini menjelaskan cara mengonfigurasi project pengembangan aplikasi Anda untuk menyertakan library ini.

Untuk menambahkan library Jetpack ini dan mengonfigurasi project Anda, ikuti langkah-langkah berikut:

  1. Update file gradle.properties Anda untuk menangani library Jetpack:

    gradle.properties

    android.useAndroidX=true
    # Automatically convert third-party libraries to use AndroidX
    android.enableJetifier=true
    
  2. Tambahkan dependensi library Jetpack ke build.gradle:

    app/build.gradle

    dependencies {
     implementation "androidx.core:core:1.6.0"
     implementation "androidx.core:core-google-shortcuts:1.0.1"
     ...
    }
    

    Dalam kode contoh sebelumnya, Anda mencantumkan dua library Jetpack sebagai dependensi. Library androidx.core:core:1.6.0 berisi class ShortcutManagerCompat, yang Anda gunakan untuk mengirim pintasan dinamis ke Google.

    androidx.core:core-google-shortcuts:1.0.1 adalah library Integrasi Pintasan Google. Library ini tidak berisi API yang digunakan developer. Dengan menambahkannya sebagai dependensi, Anda memungkinkan Asisten untuk mengambil pintasan dinamis yang Anda kirim menggunakan class ShortcutManagerCompat.

Mengirim pintasan dinamis

Untuk mengirim pintasan dinamis yang memenuhi syarat untuk ditampilkan di Asisten, Anda terlebih dahulu membuat pintasan menggunakan class ShortcutInfoCompat.Builder().

Kemudian, Anda mengirim pintasan menggunakan metode ShortcutManagerCompat.pushDynamicShortcut(). Pintasan dikirim setiap kali pengguna menyelesaikan tindakan yang relevan di aplikasi Anda. Kode contoh berikut mendorong pintasan setiap kali pengguna memesan di aplikasi pesan-antar makanan:

ExampleOrderActivity

Kotlin

// Define the dynamic shortcut for a menu item
var intent = Intent(context, DisplayOrderActivity::class.java)
intent.action = Intent.ACTION_VIEW
var shortcutInfo = ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Cappuccino")
    .setLongLabel("Order another cappuccino")
    .addCapabilityBinding(
        "actions.intent.ORDER_MENU_ITEM", "menuItem.name", Arrays.asList("cappuccino")
    )
    .setIntent(intent) // Push the shortcut
    .build()

// Push the shortcut
ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo)

Java

// Define the dynamic shortcut for a menu item
Intent intent = new Intent(context, DisplayOrderActivity.class);
intent.setAction(Intent.ACTION_VIEW);

ShortcutInfoCompat.Builder shortcutInfo = new ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Cappuccino")
    .setLongLabel("Order another cappuccino")
    .addCapabilityBinding(
      "actions.intent.ORDER_MENU_ITEM", "menuItem.name", Arrays.asList("cappuccino"))
    .setIntent(intent)
    .build();

// Push the shortcut
ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);

id yang direferensikan dalam metode ShortcutInfoCompat.Builder dalam kode contoh sebelumnya menentukan shortcutId objek pintasan yang dihasilkan. id ini harus berupa literal string yang unik. Untuk mengetahui detailnya, lihat dokumentasi Pintasan Android.

Dalam contoh sebelumnya, metode addCapabilityBinding mengikat pintasan dinamis ke capability dari android:name yang sama yang ditentukan di shortcuts.xml. Metode ini memungkinkan Anda mengaitkan pintasan ke parameter intent bawaan (BII) semantik.

Pintasan dinamis terkadang dikirim tanpa pengaitan parameter BII tertentu. Saat dipanggil oleh pengguna, Asisten akan memicu intent yang ditentukan di pintasan untuk memenuhi tindakan. Contoh berikut menunjukkan pintasan dinamis tanpa pengaitan parameter:

Kotlin

var intent: Intent = Intent(context, DisplayOrderActivity::class.java)
intent.setPackage(this, "com.sample.app")
intent.setAction(Intent.ACTION_VIEW)

var shortcutInfo: ShortcutInfoCompat = ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Order coffee")
    .setLongLabel("Order a cup of coffee")
    .addCapabilityBinding("actions.intent.ORDER_MENU_ITEM")
    .setIntent(intent)
    .build()

ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);

Java

Intent intent = new Intent(context, DisplayOrderActivity.class);
intent.setPackage(this, "com.sample.app");
intent.setAction(Intent.ACTION_VIEW);

ShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(context, id)
  .setShortLabel("Order coffee")
  .setLongLabel("Order a cup of coffee")
  .addCapabilityBinding("actions.intent.ORDER_MENU_ITEM")
  .setIntent(intent)
  .build();

ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);

Menguji pintasan dinamis dengan Asisten

Saat Asisten Google berhasil mengambil pintasan dinamis dari aplikasi Anda, pintasan tersebut akan memenuhi syarat untuk muncul sebagai saran Pintasan Suara di aplikasi Asisten Android. Aplikasi Asisten menyarankan pintasan terbaru yang dikirim oleh aplikasi Anda.

Untuk menguji pintasan dinamis dengan Asisten, ikuti langkah-langkah berikut:

  1. Buat pratinjau Action Aplikasi dan siapkan perangkat pengujian atau emulator untuk tindakan pengujian dengan mengikuti persyaratan penyiapan yang sama seperti untuk Plugin Asisten Google.
  2. Buka aplikasi Anda dan tentukan pintasan dinamis untuk mendorong. Kemudian selesaikan tindakan. Misalnya, jika Anda mengirim pintasan setiap kali catatan dibuat di aplikasi catatan, buat catatan baru.
  3. Buka Pintasan di aplikasi Setelan Asisten pada perangkat Anda. Pintasan dinamis Anda akan muncul dalam daftar untuk aplikasi Anda.