Menerapkan pintasan dinamis ke Asisten

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

Misalnya, Anda dapat mendorong pintasan untuk setiap catatan yang dibuat pengguna aplikasi pencatat Anda. Anda membuat link dinamis yang 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 tekan menggunakan Class ShortcutManagerCompat, yang merupakan wrapper Jetpack untuk API ShortcutManager.

Saat Anda menggunakan library Google Shortcuts Integration di aplikasi Anda, pintasan yang Anda dorong ke Google dapat dilihat oleh pengguna sebagai saran pintasan suara di aplikasi Asisten. Anda dapat mengirim pintasan dinamis dalam jumlah tak terbatas ke Asisten menggunakan metode pushDynamicShortcut() 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 {i>library<i} 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 menyerap pintasan dinamis yang Anda kirim menggunakan class ShortcutManagerCompat.

Mengirim pintasan dinamis

Untuk mendorong pintasan dinamis yang memenuhi syarat untuk ditampilkan di Asisten, pertama-tama, Anda membuat pintasan menggunakan ShortcutInfoCompat.Builder() .

Anda kemudian mendorong pintasan menggunakan Metode ShortcutManagerCompat.pushDynamicShortcut(). Pintasan dikirim setiap kali pengguna menyelesaikan tindakan yang relevan di aplikasi Anda. Contoh berikut kode mendorong pintasan setiap kali pengguna membuat daftar dalam aplikasi catatan dan daftar.

ExampleOrderActivity

Kotlin

// Define the dynamic shortcut for an item
var intent = Intent(context, DisplayOrderActivity::class.java)
intent.action = Intent.ACTION_VIEW
var shortcutInfo = ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Running")
    .setLongLabel("Start running")
    .addCapabilityBinding(
        "actions.intent.CREATE_ITEM_LIST", "itemList.name", Arrays.asList("My First List")
    )
    .setIntent(intent) // Push the shortcut
    .build()

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

Java

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

ShortcutInfoCompat.Builder shortcutInfo = new ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Running")
    .setLongLabel("Start running")
    .addCapabilityBinding(
      "actions.intent.CREATE_ITEM_LIST", "itemList.name", Arrays.asList("My First List"))
    .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 didorong tanpa parameter BII tertentu asosiasi. 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("Create a list")
    .setLongLabel("Create a list")
    .addCapabilityBinding("actions.intent.CREATE_ITEM_LIST")
    .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("Create a list")
  .setLongLabel("Create a list")
  .addCapabilityBinding("actions.intent.CREATE_ITEM_LIST")
  .setIntent(intent)
  .build();

ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);

Menguji pintasan dinamis dengan Asisten

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

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

  1. Membuat pratinjau Action Aplikasi dan menyiapkan perangkat pengujian atau emulator untuk menguji tindakan dengan mengikuti persyaratan penyiapan seperti untuk Plugin Asisten Google.
  2. Buka aplikasi dan tentukan pintasan dinamis yang akan dikirim. 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. Nama pintasan dinamis akan muncul dalam daftar untuk aplikasi Anda.