ส่งทางลัดแบบไดนามิกไปยัง Assistant

แป้นพิมพ์ลัดสำหรับ Android ช่วยให้ผู้ใช้ วิธีดำเนินการหรือเข้าถึงเนื้อหาในแอป Assistant สามารถแนะนําทางลัดแบบไดนามิกสำหรับ Android ของคุณให้กับผู้ใช้ที่ ที่เกี่ยวข้อง เพื่อช่วยให้ผู้ใช้ค้นพบและเล่นซ้ำ ฟังก์ชันที่พร้อมใช้งานเสียง

ตัวอย่างเช่น คุณสามารถพุชทางลัดสำหรับแต่ละโน้ตที่ผู้ใช้สร้างขึ้นในแอปจดบันทึกของคุณ คุณทำให้ลิงก์แบบไดนามิกมีสิทธิ์แสดงในแพลตฟอร์มต่างๆ ของ Google เช่น Assistant ได้โดยการเพิ่มไลบรารี Jetpack สำหรับการผสานรวมทางลัดของ Google ลงในโปรเจ็กต์ ไลบรารีนี้ช่วยให้ Assistant สามารถใช้แป้นพิมพ์ลัดแบบไดนามิกที่คุณพุชโดยใช้ ShortcutManagerCompat ซึ่งเป็น Wrapper ของ Jetpack สำหรับฟังก์ชัน ShortcutManager API

เมื่อคุณใช้ไลบรารีการผสานรวมทางลัดของ Google ในแอปไดนามิก ทางลัดที่คุณพุชไปยัง Google จะปรากฏให้ผู้ใช้เห็นเป็นคำแนะนำทางลัดเสียง ในแอป Assistant คุณสามารถพุชแป้นพิมพ์ลัดแบบไดนามิกได้ไม่จำกัดจำนวนไปยัง Assistant ที่ใช้เมธอด pushDynamicShortcut() ของ ไลบรารี ShortcutManagerCompat

กำหนดค่าโปรเจ็กต์การพัฒนา

การเพิ่มฟังก์ชันทางลัดแบบไดนามิกลงในแอปของคุณต้องใช้ ไลบรารีการผสานรวมทางลัดของ Google ซึ่งเป็นไลบรารี Android Jetpack ส่วนนี้จะอธิบายวิธีกำหนดค่าโปรเจ็กต์การพัฒนาแอปให้รวมไลบรารีนี้

โปรดทำตามขั้นตอนต่อไปนี้เพื่อเพิ่มไลบรารี Jetpack นี้และกำหนดค่าโปรเจ็กต์

  1. อัปเดตไฟล์ gradle.properties เพื่อจัดการไลบรารี Jetpack ดังนี้

    gradle.properties

    android.useAndroidX=true
    # Automatically convert third-party libraries to use AndroidX
    android.enableJetifier=true
    
  2. เพิ่มไลบรารีของ Jetpack ที่ต้องใช้ลงใน build.gradle

    app/build.gradle

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

    ในโค้ดตัวอย่างก่อนหน้านี้ คุณแสดงไลบรารี Jetpack 2 รายการเป็น ทรัพยากร Dependency ไลบรารี androidx.core:core:1.6.0 ประกอบด้วย คลาส ShortcutManagerCompat ซึ่งคุณใช้เพื่อพุชทางลัดแบบไดนามิกไปยัง Google

    androidx.core:core-google-shortcuts:1.0.1 คือกลุ่ม Google ไลบรารีการผสานรวมทางลัด ไลบรารีนี้ไม่มีหน้าสำหรับนักพัฒนาซอฟต์แวร์ API การเพิ่มแอปเป็นทรัพยากร Dependency จะทำให้ Assistant สามารถ แป้นพิมพ์ลัดแบบไดนามิกที่คุณพุชโดยใช้คลาส ShortcutManagerCompat

เพิ่มแป้นพิมพ์ลัดแบบไดนามิก

วิธีพุชทางลัดแบบไดนามิกที่มีสิทธิ์แสดงบน Assistant คุณสร้างทางลัดเป็นครั้งแรกโดยใช้ ShortcutInfoCompat.Builder()

จากนั้นพุชทางลัดโดยใช้ ShortcutManagerCompat.pushDynamicShortcut() วิธี ระบบจะพุชทางลัดทุกครั้งที่ผู้ใช้ดำเนินการที่เกี่ยวข้องในแอปของคุณ ตัวอย่างโค้ดต่อไปนี้จะพุชทางลัดทุกครั้งที่ผู้ใช้สร้างรายการในแอปโน้ตและรายการ

ตัวอย่างกิจกรรมการสั่งซื้อ

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 ที่อ้างอิงในเมธอด ShortcutInfoCompat.Builder ในก่อนหน้านี้ โค้ดตัวอย่างกำหนด shortcutId ของออบเจ็กต์ทางลัดที่ได้ idเครื่องนี้ ต้องเป็นสัญพจน์ของสตริงที่ไม่ซ้ำกัน โปรดดูรายละเอียดที่ เอกสารประกอบเกี่ยวกับทางลัดของ Android

ในตัวอย่างก่อนหน้านี้ เมธอด addCapabilityBinding จะเชื่อมโยงโฆษณาแบบไดนามิก ทางลัดไปยัง capability ของ android:name เดียวกันที่กำหนดไว้ใน shortcuts.xml วิธีนี้จะช่วยให้คุณเชื่อมโยงทางลัดไปยัง พารามิเตอร์ Intent ในตัว (BII) เชิงความหมาย

บางครั้งระบบจะพุชแป้นพิมพ์ลัดแบบไดนามิกโดยไม่มีพารามิเตอร์ BII การเชื่อมโยง เมื่อผู้ใช้เรียกใช้ Assistant จะทริกเกอร์ intent ที่กําหนดไว้ในทางลัดเพื่อดําเนินการ ตัวอย่างต่อไปนี้แสดงทางลัดแบบไดนามิกที่ไม่มีการเชื่อมโยงพารามิเตอร์

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);

ทดสอบทางลัดแบบไดนามิกด้วย Assistant

เมื่อ Google Assistant เพิ่มทางลัดแบบไดนามิกจาก ทางลัดนี้จะมีสิทธิ์ปรากฏเป็นการแนะนำทางลัดด้วยเสียงใน แอป Assistant สำหรับ Android แอป Assistant แนะนำทางลัดล่าสุด ที่แอปของคุณพุชเข้ามา

หากต้องการทดสอบทางลัดแบบไดนามิกด้วย Assistant ให้ทำตามขั้นตอนต่อไปนี้

  1. สร้างตัวอย่างการดำเนินการของแอปและเตรียมอุปกรณ์ทดสอบหรือ โปรแกรมจำลองสำหรับทดสอบการดำเนินการต่างๆ โดยทำตาม ที่จำเป็นสำหรับปลั๊กอิน Google Assistant
  2. เปิดแอปและกำหนดทางลัดแบบไดนามิกเพื่อพุช จากนั้นดำเนินการให้เสร็จสิ้น เช่น ถ้าคุณพุชทางลัดเมื่อ ระบบจะสร้างโน้ตในแอปการจดโน้ตของคุณ จากนั้นสร้างโน้ตใหม่
  3. เปิดทางลัดในแอปการตั้งค่า Assistant ในอุปกรณ์ บัญชี ทางลัดแบบไดนามิกจะปรากฏในรายการสำหรับแอปของคุณ