แป้นพิมพ์ลัดสำหรับ Android ช่วยให้ผู้ใช้ วิธีดำเนินการหรือเข้าถึงเนื้อหาในแอป Assistant สามารถแนะนําทางลัดแบบไดนามิกสำหรับ Android ของคุณให้กับผู้ใช้ที่ ที่เกี่ยวข้อง เพื่อช่วยให้ผู้ใช้ค้นพบและเล่นซ้ำ ฟังก์ชันที่พร้อมใช้งานเสียง
เช่น คุณจะพุชทางลัดสำหรับโน้ตแต่ละรายการที่ผู้ใช้สร้างได้
แอปการจดบันทึก คุณทำให้
ลิงก์แบบไดนามิกที่มีสิทธิ์แสดงในแพลตฟอร์มของ Google เช่น Assistant
โดยเพิ่มไลบรารี Jetpack การผสานรวมทางลัดของ Google ลงในโปรเจ็กต์ของคุณ
ไลบรารีนี้ช่วยให้ Assistant สามารถใช้แป้นพิมพ์ลัดแบบไดนามิกที่คุณพุชโดยใช้
ShortcutManagerCompat
ซึ่งเป็น Wrapper ของ Jetpack สำหรับฟังก์ชัน
ShortcutManager
API
เมื่อคุณใช้ไลบรารีการผสานรวมทางลัดของ Google ในแอปไดนามิก
ทางลัดที่คุณพุชไปยัง 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
เพิ่มทรัพยากร Dependency ของไลบรารี 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()
วิธี มีการพุชทางลัด
เมื่อใดก็ตามที่ผู้ใช้ดำเนินการที่เกี่ยวข้องในแอปจนเสร็จ ตัวอย่างต่อไปนี้
โค้ดจะพุชทางลัดทุกครั้งที่ผู้ใช้สั่งอาหารในแอปจัดส่งอาหาร ดังนี้
ตัวอย่างกิจกรรมการสั่งซื้อ
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
ที่อ้างอิงในเมธอด 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("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);
ทดสอบทางลัดแบบไดนามิกด้วย Assistant
เมื่อ Google Assistant นำทางลัดแบบไดนามิกจาก ทางลัดนี้จะมีสิทธิ์ปรากฏเป็นการแนะนำทางลัดด้วยเสียงใน แอป Assistant สำหรับ Android แอป Assistant แนะนำทางลัดล่าสุด ที่แอปของคุณพุชเข้ามา
หากต้องการทดสอบทางลัดแบบไดนามิกด้วย Assistant ให้ทำตามขั้นตอนต่อไปนี้
- สร้างตัวอย่างการดำเนินการของแอปและเตรียมอุปกรณ์ทดสอบหรือ โปรแกรมจำลองสำหรับทดสอบการดำเนินการต่างๆ โดยทำตาม ที่จำเป็นสำหรับปลั๊กอิน Google Assistant
- เปิดแอปและกำหนดทางลัดแบบไดนามิกเพื่อพุช จากนั้นดำเนินการให้เสร็จสิ้น เช่น ถ้าคุณพุชทางลัดเมื่อ ระบบจะสร้างโน้ตในแอปการจดโน้ตของคุณ จากนั้นสร้างโน้ตใหม่
- เปิดทางลัดในแอปการตั้งค่า Assistant ในอุปกรณ์ บัญชี ทางลัดแบบไดนามิกจะปรากฏในรายการสำหรับแอปของคุณ