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

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

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

  • foodObservation.forMeal = "https://schema.googleapis.com/MealTypeLunch"
  • foodObservation.startTime = "2024-09-06T00:00:00"
  • foodObservation.endTime = "2024-09-06T23:59:59"

Assistant จะส่งพารามิเตอร์ BII ไปยังการดําเนินการตามคําสั่งซื้อ intent ที่ระบุไว้ใน capability สามารถกำหนดองค์ประกอบ intent อย่างน้อย 1 รายการเพื่อให้ รองรับวิธีต่างๆ ที่ผู้ใช้อาจเรียกใช้ BII เช่น คุณอาจกําหนด Fulfillment intent ที่จําเป็นต้องใช้ทั้งพารามิเตอร์ BII ในตัวอย่างนี้ จากนั้นคุณอาจกำหนด Intent ที่ 2 ที่ต้องใช้ BII เดียวได้ พารามิเตอร์ foodObservation.forMeal ที่จะรายงานอาหารทุกมื้อในวันหนึ่งๆ เช่น "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 เพื่อหลีกเลี่ยงข้อผิดพลาดในการคอมไพล์เมื่อกำหนดความสามารถของ App Actions ใน 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 (ไม่บังคับ)

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

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

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

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

<capability>

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

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

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

<intent>

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

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

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

<เทมเพลต URL>

เทมเพลตสำหรับสร้าง URI ของ Deep Link ไปยัง ในอุปกรณ์ได้ ระบบอาจขยายเทมเพลตด้วยพารามิเตอร์ Intent ในตัวหากพารามิเตอร์ที่จําเป็นสําหรับเทมเพลตพร้อมใช้งานทั้งหมด ดูตัวอย่างเทมเพลต URL ของ HTTP ได้ที่บทความใน 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

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

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

<parameter> (สำหรับ <shortcut-fulfillment>)

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

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

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

<slice>

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

สคีมาทางลัด

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

แท็ก 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

<ทางลัด>

<shortcut> ของ Android ที่กําหนดไว้ใน 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.START_EXERCISE

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

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

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

  • android:key: ชื่อพารามิเตอร์ capability BII ที่จะเชื่อมโยง ทางลัดนี้ไปยัง เช่น exercise.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 รายการใดรายการหนึ่งโดยใช้ App Links URL, สคีมที่กำหนดเอง หรือ URL ตาม Intent

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

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

<capability android:name="actions.intent.START_EXERCISE">
  <intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.ExerciseActivity">
    <parameter android:name="exercise.name" android:key="exercise" />
  </intent>
</capability>

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

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

<capability android:name="actions.intent.START_EXERCISE">
  <intent>
    <url-template android:value="myapp://start{?exercise}" />
    <parameter android:name="exercise.name" android:key="exercise" />
  </intent>
</capability>

จากตัวอย่างข้างต้น เมื่อผู้ใช้ค้นหาว่า "Ok Google สั่งลาเต้จาก ExampleApp" แอปจะได้รับ URL ที่สร้างขึ้น ซึ่งก็คือ "myapp://start?exercise=Running"

หากต้องการจับคู่พารามิเตอร์ 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 ซึ่งเรียกว่า พื้นที่โฆษณาแบบอินไลน์ โปรดดูรายละเอียดที่หัวข้อพื้นที่โฆษณาแบบอินไลน์

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

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

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

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

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