แป้นพิมพ์ลัดสำหรับ Android ช่วยให้ผู้ใช้ วิธีดำเนินการหรือเข้าถึงเนื้อหาในแอป Assistant สามารถแนะนําทางลัดแบบไดนามิกสำหรับ Android ของคุณให้กับผู้ใช้ที่ ที่เกี่ยวข้อง เพื่อช่วยให้ผู้ใช้ค้นพบและเล่นซ้ำ ฟังก์ชันที่พร้อมใช้งานเสียง
ตัวอย่างเช่น คุณสามารถพุชทางลัดสำหรับโน้ตแต่ละรายการที่ผู้ใช้สร้างขึ้นในแอปจดบันทึกของคุณ คุณทำให้ลิงก์แบบไดนามิกมีสิทธิ์แสดงในแพลตฟอร์มต่างๆ ของ Google เช่น Assistant ได้โดยการเพิ่มคลัง Jetpack สำหรับการผสานรวมทางลัดของ Google ลงในโปรเจ็กต์
ไลบรารีนี้ช่วยให้ Assistant ยอมรับทางลัดแบบไดนามิกที่คุณส่งโดยใช้คลาส ShortcutManagerCompat
ซึ่งเป็น Wrapper ของ Jetpack สําหรับ ShortcutManager
API
เมื่อคุณใช้ไลบรารีการผสานรวม Google Shortcuts ในแอป ผู้ใช้จะเห็นแป้นพิมพ์ลัดแบบไดนามิกที่คุณพุชไปยัง Google เป็นคำแนะนำแป้นพิมพ์ลัดเสียงในแอป Assistant คุณสามารถพุชแป้นพิมพ์ลัดแบบไดนามิกไปยัง Assistant ได้ไม่จำกัดโดยใช้เมธอด pushDynamicShortcut()
ของไลบรารี ShortcutManagerCompat
กำหนดค่าโปรเจ็กต์การพัฒนา
การเพิ่มฟังก์ชันทางลัดแบบไดนามิกลงในแอปของคุณต้องใช้ ไลบรารีการผสานรวมทางลัดของ Google ซึ่งเป็นไลบรารี Android Jetpack ส่วนนี้จะอธิบายวิธีกำหนดค่าโปรเจ็กต์การพัฒนาแอปให้รวม ไลบรารีนี้
หากต้องการเพิ่มไลบรารี Jetpack นี้และกำหนดค่าโปรเจ็กต์ ให้ทำตามขั้นตอนต่อไปนี้
อัปเดตไฟล์
gradle.properties
เพื่อจัดการไลบรารี Jetpack ดังนี้gradle.properties
android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true
เพิ่มไลบรารีของ 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
ซึ่งคุณใช้เพื่อพุชทางลัดแบบไดนามิกไปยัง Googleandroidx.core:core-google-shortcuts:1.0.1
คือกลุ่ม Google ไลบรารีการผสานรวมทางลัด ไลบรารีนี้ไม่มีหน้าสำหรับนักพัฒนาซอฟต์แวร์ API การเพิ่มเป็น Dependency จะเป็นการเปิดใช้ Assistant ให้รับแป้นพิมพ์ลัดแบบไดนามิกที่คุณส่งโดยใช้คลาสShortcutManagerCompat
เพิ่มแป้นพิมพ์ลัดแบบไดนามิก
หากต้องการพุชทางลัดแบบไดนามิกที่มีสิทธิ์แสดงใน Assistant ก่อนอื่นคุณต้องสร้างทางลัดโดยใช้คลาส ShortcutInfoCompat.Builder()
จากนั้นพุชทางลัดโดยใช้
ShortcutManagerCompat.pushDynamicShortcut()
วิธี มีการพุชทางลัด
เมื่อใดก็ตามที่ผู้ใช้ดำเนินการที่เกี่ยวข้องในแอปจนเสร็จ ตัวอย่างต่อไปนี้
โค้ดจะพุชทางลัดทุกครั้งที่ผู้ใช้สร้างรายการในแอปโน้ตและลิสต์
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
ที่อ้างอิงในเมธอด 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 ให้ทำตามขั้นตอนต่อไปนี้
- สร้างตัวอย่างการดำเนินการของแอปและเตรียมอุปกรณ์ทดสอบหรือ โปรแกรมจำลองสำหรับทดสอบการดำเนินการต่างๆ โดยทำตาม ที่จำเป็นสำหรับปลั๊กอิน Google Assistant
- เปิดแอปและกำหนดทางลัดแบบไดนามิกเพื่อพุช จากนั้นดําเนินการให้เสร็จสมบูรณ์ เช่น ถ้าคุณพุชทางลัดเมื่อ ระบบจะสร้างโน้ตในแอปการจดโน้ตของคุณ จากนั้นสร้างโน้ตใหม่
- เปิดทางลัดในแอปการตั้งค่า Assistant บนอุปกรณ์ บัญชี ทางลัดแบบไดนามิกจะปรากฏในรายการสำหรับแอปของคุณ