สร้างทางลัด.xml

เมื่อคุณระบุฟังก์ชันการทำงานในแอปและ Intent ในตัวที่เกี่ยวข้องแล้ว (BII) ในการนำไปใช้ ให้ประกาศ BII ที่ฟังก์ชันการทำงานของคุณรองรับโดยกำหนด องค์ประกอบ capability ในไฟล์ทรัพยากร shortcuts.xml การประกาศ BII ในฐานะ capability จะลงทะเบียนการสนับสนุนสำหรับจุดประสงค์เชิงความหมายนั้นในแอปของคุณ และ ทำให้ Google Assistant ตอบสนองความตั้งใจในการค้นหาด้วยเสียงได้

Assistant จะใช้การประมวลผลภาษาธรรมชาติเพื่อแยกพารามิเตอร์จากผู้ใช้ คำถาม การอ้างอิง Intent ในตัวจะแสดงช่องที่ BII แต่ละรายการ สามารถแยกออกจากคำค้นหาของผู้ใช้ที่เกี่ยวข้อง เช่น หากผู้ใช้ เรียกใช้ความสามารถ actions.intent.ORDER_MENU_ITEM ในแอปของคุณโดย พูดว่า "Ok Google สั่งพิซซ่าจาก ExampleCafe ใน ExampleApp" Assistant แยกพารามิเตอร์ BII ต่อไปนี้จากคำขอของผู้ใช้

  • menuItem.name = "พิซซ่า"
  • menuItem.inMenuSection.inMenu.forRestaurant.name = "ExampleCafe"

Assistant จะส่งพารามิเตอร์ BII ไปยังการดําเนินการตามคําสั่งซื้อ intent ที่ระบุไว้ใน capability สามารถกำหนดองค์ประกอบ intent อย่างน้อย 1 รายการเพื่อให้ รองรับวิธีต่างๆ ที่ผู้ใช้อาจเรียกใช้ BII ตัวอย่างเช่น คุณ สามารถกำหนด Fulfillment intent ที่ต้องใช้พารามิเตอร์ BII ทั้ง 2 รายการใน ตัวอย่างด้านบน จากนั้นคุณอาจกำหนด Intent ที่ 2 ที่ต้องใช้ BII เดียวได้ พารามิเตอร์ menuItem.name ที่แสดงตัวเลือกร้านอาหารใกล้เคียงหากผู้ใช้ ทำให้คำของ่ายขึ้น เช่น "Ok Google สั่งพิซซ่าใน ExampleApp"

ภาพรวม

คุณกำหนดค่าการดำเนินการของแอปโดยใช้ไฟล์ shortcuts.xml ที่วางไว้ในแอป ไดเรกทอรี res/xml ของโปรเจ็กต์ แล้วสร้างการอ้างอิงไปยัง shortcuts.xml ในไฟล์ Manifest ของแอป เพิ่มการอ้างอิงไปยัง shortcuts.xml ในไฟล์ Manifest ของแอป โดยทำตามขั้นตอนต่อไปนี้

  1. ในไฟล์ Manifest ของแอป (AndroidManifest.xml) ให้ค้นหากิจกรรมที่มี ตั้งค่าตัวกรอง Intent เป็นการดำเนินการ android.intent.action.MAIN และ หมวดหมู่ android.intent.category.LAUNCHER

  2. เพิ่มการอ้างอิงไปยัง shortcuts.xml ใน AndroidManifest.xml โดยใช้ แท็ก <meta-data> ใน Activity ที่มี Intent ตัวกรองสำหรับทั้ง MAIN และ LAUNCHER ดังนี้

    <meta-data
       android:name="android.app.shortcuts"
       android:resource="@xml/shortcuts" />
    

ตัวอย่างข้างต้นประกาศทรัพยากร XML สำหรับไฟล์ xml/shortcuts.xml ใน APK ดูรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดค่าทางลัดได้ที่ สร้างทางลัดแบบคงที่ในเอกสารประกอบสำหรับนักพัฒนาซอฟต์แวร์ Android

ไลบรารี Jetpack androidx.core:core:1.6.0 (หรือมากกว่า) ในโปรเจ็กต์ Android เพื่อหลีกเลี่ยงข้อผิดพลาดในการคอมไพล์ เมื่อกำหนดความสามารถของการดำเนินการของแอปใน shortcuts.xml โปรดดูรายละเอียดที่หัวข้อ เริ่มต้นใช้งาน Android Jetpack

ทางลัดแบบคงที่

เมื่อกำหนด capability คุณสามารถประกาศองค์ประกอบ shortcut แบบคงที่ใน shortcuts.xmlเพื่อขยายฟังก์ชันของความสามารถนี้ ทางลัดแบบคงที่ Assistant จะนำเข้าข้อมูลเมื่อคุณอัปโหลดรุ่นไปยัง Google Play Console เนื่องจากแป้นพิมพ์ลัดแบบคงที่สามารถสร้างและอัปเดตได้โดยการสร้างรุ่นใหม่เท่านั้น ซึ่งมีประโยชน์ในการไฮไลต์กิจกรรมและเนื้อหาทั่วไปในแอป

คุณเปิดใช้ฟังก์ชันการดำเนินการของแอปต่อไปนี้ได้ด้วยทางลัดแบบคงที่

  • แป้นพิมพ์ลัดสำหรับความสามารถ สร้างทางลัดที่เปิดใช้อินสแตนซ์ capability ที่มีค่าพารามิเตอร์ intent ที่กำหนดไว้ล่วงหน้า ตัวอย่างเช่น คุณสามารถประกาศทางลัดของแอปว่า "เริ่มเรียกใช้" ซึ่งเรียกใช้ฟังก์ชัน START_EXERCISE ความสามารถ BII ในแอปฟิตเนส

    ทางลัดเหล่านี้ประกอบด้วยแอตทริบิวต์ intent, shortLabel และ longLabel ทำให้ลิงก์เหล่านั้นมีสิทธิ์ได้รับการแนะนำและเติมเต็มในแบบชิปในเชิงรุก แพลตฟอร์ม เช่น Assistant หรือเมื่อกดไอคอนแอปใน Android ค้างไว้ Launcher ทางลัดการดำเนินการยังสามารถเป็นทางลัดเอนทิตีได้ด้วย ซึ่งมีรายละเอียด ด้านล่าง โดยเชื่อมโยงกับ capability โดยใช้ <capability-binding>

  • แป้นพิมพ์ลัดของเอนทิตี แป้นพิมพ์ลัดเอนทิตีจะแสดงรายการพารามิเตอร์ที่รองรับ ค่าสำหรับการเติมคำค้นหาด้วยเสียงของ capability ตัวอย่างเช่น เอนทิตี ทางลัดที่มีรายการประเภทการออกกำลังกาย ("ปีนเขา" "วิ่ง" ฯลฯ) ที่เชื่อมโยงกับ พารามิเตอร์ exercise.name BII ของ START_EXERCISE แบบพื้นฐาน หากการพูดของผู้ใช้ตรงกับเอนทิตี รหัส shortcutId จะเป็น ไปยัง Intent แทนค่าการค้นหาของผู้ใช้ดิบ

    แป้นพิมพ์ลัดของ Entity ไม่ได้กำหนด intent, shortLabel หรือ longLabel ด้วยเหตุนี้จึงไม่แนะนําในแพลตฟอร์มเชิงรุก สำหรับ ดูรายละเอียดเพิ่มเติมได้ที่พื้นที่โฆษณาในบรรทัดสำหรับการดำเนินการของแอป

สคีมาความสามารถ

ตารางต่อไปนี้อธิบายสคีมาการดำเนินการของแอปสำหรับองค์ประกอบ capability ใน shortcuts.xml คุณต้องระบุแอตทริบิวต์ทั้งหมดของแท็กเมื่อใส่แท็ก เว้นแต่จะทําเครื่องหมายว่า "ไม่บังคับ"

แท็ก Shortcuts.xml มีใน แอตทริบิวต์
<capability> <shortcuts>

android:name

app:queryPatterns (ใช้ได้กับความตั้งใจที่กำหนดเองเท่านั้น)

<intent> <capability>

android:action (ไม่บังคับ)

android:targetClass (ไม่บังคับ)

android:targetPackage (ไม่บังคับ)

android:data (ไม่บังคับ)

<url-template> <intent>

android:value

<extra> <intent>

android:key

android:value

ใช้ได้กับการเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าเท่านั้น

<parameter> <intent>

android:name

android:key

android:mimeType (ใช้ได้กับความตั้งใจที่กำหนดเองเท่านั้น)

android:required (ไม่บังคับ)

app:shortcutMatchRequired (ไม่บังคับ)

<data> <parameter> android:pathPattern (ใช้ได้กับพื้นที่โฆษณาบนเว็บเท่านั้น)
<shortcut-fulfillment> <capability> ใช้ได้กับพื้นที่โฆษณาในบรรทัดเท่านั้น
<parameter> <shortcut-fulfillment> android:name
<slice> <capability>

ใช้ได้กับ Android Slice เท่านั้น

คำอธิบายสคีมาความสามารถ

ส่วนนี้จะอธิบายองค์ประกอบสคีมา capability

<ความสามารถ>

capability ที่กําหนด Intent ของการดำเนินการในแอปที่แอปของคุณรองรับ ชิ้น องค์ประกอบ <capability> ในไฟล์ shortcuts.xml ต้องระบุอย่างน้อย 1 รายการ <intent> เพื่อจัดการดำเนินการตามคำสั่งซื้อ

แอตทริบิวต์:

  • android:name: รหัสการดำเนินการ Intent ในตัว (เช่น actions.intent.CREATE_TAXI_RESERVATION) สำหรับรายการที่รองรับ Intent ในตัว โปรดดูข้อมูลอ้างอิง Intent ในตัว
  • app:queryPatterns: ทรัพยากรอาร์เรย์สตริงของคำค้นหาที่ต้องการจากฟังก์ชัน ผู้ใช้สำหรับความตั้งใจนี้ แอตทริบิวต์นี้ใช้ได้กับ ความตั้งใจที่กำหนดเอง เนื่องจาก BII มีโมเดลของ วิธีที่ผู้ใช้มักจะสื่อสารเกี่ยวกับงานที่ตนพยายามทํา หรือข้อมูล ที่พวกเขามองหา

<intent>

องค์ประกอบ Android intent ที่กำหนดลักษณะการค้นหาของผู้ใช้ ดำเนินการตามฟังก์ชันในแอป นักพัฒนาซอฟต์แวร์อาจมี <intent> หลายรายการ แท็กใน capability Assistant จะพยายามตอบคำถามของผู้ใช้โดยใช้ <intent> แรกใน capability ซึ่งมีพารามิเตอร์ที่จำเป็นทั้งหมด ที่มีให้

แอตทริบิวต์:

  • android:action: ประเภท Intent Action ค่าเริ่มต้นคือ ACTION_VIEW
  • android:targetClass: คลาส Target Activity เช่น วันที่ "com.example.food.OrderActivity"
  • android:targetPackage: แพ็กเกจที่มีคลาส Activity เป้าหมายสำหรับ ตัวอย่าง: "com.example.food"
  • android:data: <url-template> เขียนทับช่องนี้ หากมีการประกาศแท็กใน intent

<เทมเพลต URL>

เทมเพลตสำหรับสร้าง URI ของ Deep Link ไปยัง ในอุปกรณ์ได้ เทมเพลตอาจขยายได้ด้วย Intent ในตัว หากมีพารามิเตอร์ที่จำเป็นทั้งหมดสำหรับเทมเพลตพร้อมใช้งาน สำหรับ โปรดดูตัวอย่างเทมเพลต HTTP URL บทความ Wikipedia เกี่ยวกับเทมเพลต URL รูปแบบเทมเพลตเป็นไปตามข้อกำหนดของเทมเพลต URI RFC6570

ตัวอย่างค่าเทมเพลต URL มีดังนี้

เทมเพลต ค่า ค่าที่ขยาย
https://example.com/test{?foo,bar} "foo": "123"

"bar": "456"

https://example.com/test?foo=123&bar=456
https://example.com/test?utm_campaign=appactions{&foo,bar} "foo": "123"

"bar": "456"

https://example.com/test?utm_campaign=appactions&foo=123&bar=456
https://example.com/test?utm_campaign=appactions{#foo} "foo": "123" https://example.com/test?utm_campaign=appactions#foo=123
myapp://example/{foo} "foo": "123" myapp://example/123

โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าเทมเพลต URL ที่ เทมเพลต URL ใน Fulfillment

<เพิ่มเติม>

กำหนดข้อมูลเพิ่มเติมสำหรับ intent สำหรับการดำเนินการของแอป ช่องนี้จะใช้เพื่อ เปิดใช้การเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าสำหรับ capability

<พารามิเตอร์>

จับคู่พารามิเตอร์ BII กับค่าพารามิเตอร์ Intent สำหรับข้อมูลเพิ่มเติม โปรดดู ข้อมูลและการจับคู่พารามิเตอร์

แอตทริบิวต์:

  • android:name: ชื่อพารามิเตอร์ BII ที่จะเชื่อมโยงกับ intent นี้ พารามิเตอร์ ชื่อควรเป็นฟิลด์ระดับ Leaf ของพารามิเตอร์ BII (สำหรับ เช่น foodObservation.aboutFood.name)
  • android:key: คีย์ที่นักพัฒนาแอปกำหนดของค่าพารามิเตอร์ BII ตัวอย่างเช่น คุณอาจกำหนด contact_name สำหรับ message.recipient.name BII พารามิเตอร์
  • android:mimeType: mimeType ของพารามิเตอร์ เช่น text/* ช่วงเวลานี้ ต้องมีช่องสำหรับพารามิเตอร์ของ Intent ที่กำหนดเองเท่านั้น
  • android:required: ประกาศว่าการค้นหาของผู้ใช้ต้องมีข้อมูลนี้หรือไม่ พารามิเตอร์ Intent นี้ใช้สำหรับการดำเนินการให้สมบูรณ์ หากพารามิเตอร์ไม่ใช่ Assistant จะพยายามตอบคำถามของผู้ใช้โดยใช้ intent กำหนดไว้สำหรับ capability

<data>

เชื่อมโยงพื้นที่โฆษณาในเว็บกับ parameter

แอตทริบิวต์:

  • android:pathPattern: รูปแบบ URL สำหรับ URL entity รายการที่จะส่งคืนโดยใช้ พื้นที่โฆษณาบนเว็บ แอตทริบิวต์นี้รองรับไวลด์การ์ด 2 แบบ ได้แก่

    • *: เครื่องหมายดอกจันจับคู่กับลำดับของรายการตั้งแต่ศูนย์รายการขึ้นไป นำหน้าอักขระทันที

    • .*: จุดตามด้วยเครื่องหมายดอกจันจับคู่กับลำดับเลข 0 หรือ มีอักขระมากขึ้น

    • ต้องใช้อักขระหลีกเฉพาะสำหรับ * และ \ เท่านั้น ซึ่งคุณ อาจเป็น \\* และ \\\\ ตามลำดับ

<ทางลัดสำหรับการดำเนินการตามคำสั่งซื้อ>

ระบุว่า intent ที่กำหนดไว้ในทางลัดของพื้นที่โฆษณาในบรรทัดสำหรับ ใช้พารามิเตอร์ที่ระบุสําหรับการดําเนินการตามคําสั่งซื้อ โปรดดูรายละเอียดที่หัวข้อการดำเนินการคำสั่งซื้อโดยใช้ Intent ทางลัด

<พารามิเตอร์> (สำหรับ <shortcut-fulfillment>)

แอตทริบิวต์ที่ไม่บังคับซึ่งแมปพารามิเตอร์ BII เดียวกับสินค้าคงคลังในบรรทัด Fulfillment ทางลัด โปรดดูรายละเอียดที่หัวข้อการดำเนินการคำสั่งซื้อโดยใช้ Intent ทางลัด

แอตทริบิวต์:

  • android:name: ชื่อพารามิเตอร์ BII ที่จะเชื่อมโยงกับพื้นที่โฆษณาในบรรทัด Fulfillment ทางลัด ชื่อควรเป็นฟิลด์ระดับใบไม้ของ BII (เช่น menuItem.name)

<สไลซ์>

เปิดให้ Assistant ฝังผลลัพธ์ของคำค้นหาที่ตรงกับ capability นี้เป็น Android Slice โปรดดูรายละเอียดที่หัวข้อ ผสานรวมการดำเนินการของแอปกับ Android Slice

สคีมาทางลัด

ตารางต่อไปนี้อธิบายแอตทริบิวต์ขององค์ประกอบ shortcut ที่ใช้เพื่อ เปิดใช้ฟังก์ชันการดำเนินการของแอป เมื่อใส่แท็ก แอตทริบิวต์ทั้งหมดของแท็ก ต้องระบุ ยกเว้นในกรณีที่ระบุว่า "ไม่บังคับ"

แท็ก Shortcuts.xml มีใน แอตทริบิวต์
<shortcut> <shortcuts>

android:shortcutId

android:shortcutShortLabel

android:shortcutLongLabel (ไม่บังคับ)

android:icon (ไม่บังคับ)

<intent> <shortcut>

android:action

android:targetClass (ไม่บังคับ)

android:targetPackage (ไม่บังคับ)

android:data (ไม่บังคับ)

<capability-binding> <shortcut>

android:key

<parameter-binding> <capability-binding>

android:key (ไม่บังคับ)

android:value

<extra> <shortcut>

android:name (ไม่บังคับ)

android:value

ใช้ได้เฉพาะกับการจับคู่พารามิเตอร์ Enum

คำอธิบายสคีมาของทางลัด

ส่วนนี้จะอธิบายองค์ประกอบสคีมา shortcut

<ทางลัด>

Android <shortcut> ที่กำหนดไว้ใน shortcuts.xml พร้อมแอตทริบิวต์บางรายการ ที่เกี่ยวข้องกับการดำเนินการของแอป ค่าสตริงสำหรับ shortcutShortLabel และ shortcutLongLabel ถูกอ้างอิงผ่าน APK ทรัพยากรสตริง

แอตทริบิวต์:

  • android:shortcutId: ตัวระบุสำหรับทางลัดนี้
  • android:shortcutShortLabel: ทรัพยากรสตริงที่แสดงทางลัดแบบย่อ วลี เช่น "@string/callDavidShort" ที่แทนค่า "การโทร David"
  • android:shortcutLongLabel: ทรัพยากรสตริงที่แสดงทางลัดแบบยาว วลี เช่น "@string/callDavidLong" ที่แทนค่า "สร้าง โทรหา David"

<intent>

Intent ของ Android ที่เชื่อมโยงกับทางลัดนี้ intent นี้จะทำงานเมื่อ ผู้ใช้เปิดทางลัดนี้โดยใช้เสียงหรือการแตะ

แอตทริบิวต์ Intent shortcut เหมือนกับ capability intent

<capability-binding>

เชื่อมโยง shortcut กับการดำเนินการของแอป capability การเพิ่มองค์ประกอบนี้ลงใน shortcut ช่วยให้ดำเนินการด้วยเสียงได้โดยใช้ Assistant

แอตทริบิวต์:

  • android:key: แอตทริบิวต์ android:name ของcapabilityรายการนี้ เชื่อมโยงกับ shortcut ตัวอย่างเช่น actions.intent.CREATE_TAXI_RESERVATION

<การเชื่อมโยงพารามิเตอร์>

แอตทริบิวต์ที่ไม่บังคับที่เชื่อมโยง shortcut กับพารามิเตอร์เดียวของแอป การดำเนินการ capability หากมีการกำหนด parameter-binding สำหรับ shortcut ค่า สามารถใช้ทางลัดเพื่อระบุเอนทิตีพื้นที่โฆษณาในบรรทัดไปยังพารามิเตอร์ BII ดูรายละเอียดเพิ่มเติมได้ที่พื้นที่โฆษณาในบรรทัดสำหรับการดำเนินการของแอป

แอตทริบิวต์:

  • android:key: ชื่อพารามิเตอร์ capability BII ที่จะเชื่อมโยง ทางลัดนี้ไปยัง เช่น foodObservation.aboutFood.name
  • android:value: ค่า entity ซึ่งอาจเป็น entity รายการเดียว หรือ รายการทรัพยากร

<เพิ่มเติม>

ข้อมูลกลุ่ม extra สำหรับทางลัด sameAs เป็นข้อมูลเดียว ซึ่งเกี่ยวข้องกับองค์ประกอบ shortcut ของการดำเนินการของแอป URL sameAs อ้างอิงถึง หน้าเว็บอ้างอิงที่ระบุเอนทิตีอย่างชัดเจน ใช้เพื่อระบุ ค่า enum ต่อเมื่อประเภทพารามิเตอร์ Intent เป็นประเภทย่อยของ schema.org/Enumeration ต้องระบุสำหรับฟิลด์พารามิเตอร์ มีประเภทย่อยของ schema.org/Enumeration (เช่น MealTypeBreakfast)

แอตทริบิวต์:

  • android:key: ค่าที่รองรับสำหรับการดำเนินการของแอปคือ sameAs
  • android:value: ค่า URL sameAs

โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อการจับคู่ค่าพารามิเตอร์ที่ระบุมา

ตัวเลือกการดำเนินการตาม Intent

คุณกําหนดองค์ประกอบ intent ภายใน <capability> เพื่อประกาศวิธีที่ Assistant ตอบสนองหรือดำเนินการตามคำสั่งเสียงของผู้ใช้ที่ตรงกับความสามารถนั้น มี มีวิธีที่หลากหลายในการกำหนดค่าวิธีที่ intent เปิดปลายทางการดำเนินการตามคำสั่งซื้อ ในแอป โดยขึ้นอยู่กับโครงสร้างการไปยังส่วนต่างๆ ของแอป

ตัวเลือกการดำเนินการตามคำสั่งซื้อมีดังต่อไปนี้

  • Intent แบบเจาะจงปลายทาง: เปิดคอมโพเนนต์ของแอปที่เจาะจงโดยการกำหนด แอตทริบิวต์ targetClass และ targetPackage สำหรับ intent วิธีนี้เป็นวิธีการที่แนะนำสำหรับการดำเนินการของแอป

  • Deep Link: เปิดปลายทางของแอปโดยใช้ Deep Link ของ Android โดยการกำหนด แท็ก <url-template> ภายในเอลิเมนต์ intent ช่วงเวลานี้ มีประโยชน์ในกรณีที่การไปยังส่วนต่างๆ ของแอปต้องใช้ Deep Link อยู่แล้ว

  • ข้อมูล Intent: คุณระบุ URI ของ Fulfillment ได้ใน intent android:data ข้อมูล <url-template> เขียนทับช่องนี้ หากมีการกำหนดแท็กนั้นภายใน intent ด้วย

ข้อมูลและการจับคู่พารามิเตอร์

โดยค่าเริ่มต้น Assistant จะส่งพารามิเตอร์ BII ที่ดึงมาจากคําค้นหาของผู้ใช้ไปยัง แอปเป็นข้อมูล extra ของ Android intent ที่กำหนดไว้ใน capability

หรือคุณจะประกาศแท็ก <url-template> ใน capability ที่มีตัวยึดตำแหน่งสำหรับพารามิเตอร์แบบไดนามิก เทมเพลตนี้ แมปกับกิจกรรม Android รายการใดรายการหนึ่งของคุณโดยใช้ URL ของลิงก์แอป สคีมที่กำหนดเองหรือ URL ที่อิงตาม Intent

การใช้ Intent เพิ่มเติม

ตัวอย่างต่อไปนี้แสดงเจตนาที่ชัดแจ้งที่กำหนดไว้สำหรับ capability การดำเนินการตามคำสั่งซื้อ:

<capability android:name="actions.intent.ORDER_MENU_ITEM">
  <intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.OrderMenuItemActivity">
    <parameter android:name="menuItem.name" android:key="menu" />
  </intent>
</capability>

จากตัวอย่างข้างต้น สำหรับคำถามของผู้ใช้อย่างเช่น "Ok Google สั่งลาเต้จาก ExampleApp" แอปได้รับ intent ที่เรียกใช้คอมโพเนนต์ targetPackage, targetClass คอมโพเนนต์จะได้รับโบนัสพิเศษที่มี key = ”menu”, value = ”latte”

หากแอปของคุณจัดการ URL ที่ลิงก์กับแอปได้ด้วยพารามิเตอร์แบบไดนามิก คุณสามารถกำหนด <url-template> ใน intent เพื่อสร้าง Android Deep Link สำหรับ Fulfillment ตัวอย่างต่อไปนี้ระบุ <url-template>

<capability android:name="actions.intent.ORDER_MENU_ITEM">
  <intent>
    <url-template android:value="myapp://order{?menu}" />
    <parameter android:name="menuItem.name" android:key="menu" />
  </intent>
</capability>

จากตัวอย่างข้างต้น สำหรับคำถามของผู้ใช้อย่างเช่น "Ok Google สั่งลาเต้ จาก ExampleApp" แอปจะได้รับ URL ที่สร้างขึ้น "myapp://order?menu=latte"

หากต้องการจับคู่พารามิเตอร์ BII กับตำแหน่งใน URL คุณต้องใช้เมธอด แอตทริบิวต์ android:name ของแท็ก <parameter> แอตทริบิวต์นี้ ตรงกับค่า android:key ในเทมเพลต URL ที่คุณต้องการ แทนที่ด้วยข้อมูลจากผู้ใช้ ต้องมีค่า android:key ใน <url-template> และปิดด้วยวงเล็บปีกกา ({})

จับคู่ค่าพารามิเตอร์ที่แจกแจง

พารามิเตอร์ BII บางรายการจะระบุค่าที่แจกแจงสำหรับความตั้งใจในการดำเนินการตามคำสั่งซื้อของคุณสำหรับ เช่น ค่าข้อความที่รองรับของ RECORD_FOOD_OBSERVATION BII สำหรับ พารามิเตอร์เหล่านี้ Assistant จะจับคู่คำค้นหาของผู้ใช้ ("อาหารเช้า") กับ เอนทิตีที่มีค่า sameAs ตรงกับ URL ของสคีมา enum (https://schema.googleapis.com/MealTypeBreakfast) เพื่อเชื่อมโยง enum ค่าสำหรับ entity ที่รองรับ คุณได้ประกาศการเชื่อมโยง sameAs ใน shortcut ของคุณ ตัวอย่างต่อไปนี้แสดงการเชื่อมโยง sameAs สำหรับ ทางลัดเอนทิตีในบรรทัด:

<shortcut android:shortcutId="meal_breakfast" >
    <capability-binding android:key="actions.intent.RECORD_FOOD_OBSERVATION">
        <parameter-binding android:key="foodObservation.forMeal" />
    </capability-binding>
    <extra
        android:key="sameAs"
        android:value="http://schema.googleapis.com/MealTypeBreakfast" />
</shortcut>

<capability android:name="actions.intent.RECORD_FOOD_OBSERVATION">
  <intent targetPackage="com.example.app" targetClass="com.example.app.Class">
    <parameter android:name="foodObservation.forMeal" android:key="for_meal" />
  </intent>
</capability>

ในตัวอย่างด้านบน หากความสามารถ RECORD_FOOD_OBSERVATION ทริกเกอร์ จับคู่กับ "อาหารเช้า" ประเภทอาหารพิเศษต่อไปนี้ จะส่งไปพร้อม การจำหน่าย intent:

  • key = "for_meal"
  • value = "meal_breakfast"

ฟีเจอร์

ฟีเจอร์การดำเนินการของแอปต่อไปนี้พร้อมให้บริการใน shortcuts.xml

พื้นที่โฆษณาแบบอินไลน์สำหรับการดำเนินการของแอป

สำหรับพารามิเตอร์ BII บางรายการ สามารถใช้ทางลัดเพื่อเป็นแนวทางในเอนทิตี การแยกไปยังชุดเอนทิตีที่รองรับซึ่งระบุไว้ใน shortcuts.xml ซึ่งเรียกว่า พื้นที่โฆษณาแบบอินไลน์ โปรดดูรายละเอียดที่หัวข้อพื้นที่โฆษณาแบบอินไลน์

พื้นที่โฆษณาบนเว็บสำหรับการดำเนินการของแอป

สำหรับ BII บางส่วน คุณสามารถใช้พื้นที่โฆษณาในเว็บเป็นวิธีการ การสร้าง URL สำหรับการดำเนินการให้สมบูรณ์ พื้นที่โฆษณาบนเว็บใช้เว็บไซต์ของคุณเพื่อสำรวจ URL สำหรับ Fulfillment การดำเนินการของแอป ฟีเจอร์นี้จะเป็นประโยชน์ที่สุดเมื่อคุณมี ตัวตนบนเว็บที่ชัดเจนและ Deep Link ในแอปของคุณได้รับการจัดระเบียบแบบสาธารณะ เนื้อหาเว็บที่พร้อมให้บริการ

ดูรายละเอียดได้ที่พื้นที่โฆษณาบนเว็บ

ความตั้งใจที่กำหนดเอง

คุณสามารถประกาศ Intent ที่กำหนดเองใน shortcuts.xml เพื่อเปิดใช้ฟีเจอร์ต่อไปนี้ด้วยเสียง แอปของคุณที่ไม่ตรงกับ BII ที่มีอยู่ ในขณะที่คล้ายกันใน ฟังก์ชันการทำงานให้กับนิยาม BII, Intent ที่กำหนดเองต้องมี แอตทริบิวต์ใน shortcuts.xml:

  • app:queryPatterns: ทรัพยากรอาร์เรย์ที่ประกาศพารามิเตอร์ รูปแบบต่างๆ ของคำค้นหาสำหรับความตั้งใจที่กำหนดเอง

  • android:mimeType: ประเภทพารามิเตอร์ของความตั้งใจที่กำหนดเอง ช่องนี้ ไม่จำเป็นสำหรับ BII ซึ่งทราบประเภทพารามิเตอร์ สำหรับความตั้งใจที่กำหนดเอง ต้องมีการประกาศประเภทความหมายที่รองรับ

โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อความตั้งใจที่กำหนดเอง