เพิ่มความสามารถลงในทางลัด

ความสามารถใน shortcuts.xml ช่วยให้คุณประกาศประเภทการดำเนินการที่ผู้ใช้สามารถทำเพื่อเปิดแอปและทำงานที่เฉพาะเจาะจงได้โดยตรง ความสามารถประกอบด้วยชื่อของการดำเนินการและ intent ที่กำหนดเป้าหมายไปยังปลายทางในแอปของคุณซึ่งตอบสนองความตั้งใจของผู้ใช้

กำหนดความสามารถใน shortcuts.xml

คุณกำหนดองค์ประกอบ capability ในไฟล์ทรัพยากร shortcuts.xml ในโปรเจ็กต์การพัฒนาแอป Android หากต้องการกำหนดองค์ประกอบ capability ให้ทำดังนี้

  1. สร้างทรัพยากร shortcuts.xml โดยทำตามวิธีการในหัวข้อสร้างทางลัดแบบคงที่
  2. ระบุข้อมูลที่จำเป็นต่อไปนี้ในความสามารถของคุณ

    • ชื่อความสามารถ: การดำเนินการที่คุณต้องการให้แอปรองรับ โปรดดูเอกสารประกอบของคอมโพเนนต์สำหรับฟีเจอร์ที่ต้องใช้คำจำกัดความของความสามารถ

    • ปลายทางของแอป: ปลายทางในแอปที่การดำเนินการจะเปิดขึ้นเพื่อตอบสนองคำขอของผู้ใช้ กำหนดปลายทางของแอปโดยใช้องค์ประกอบ intent ที่ฝังอยู่ภายใน capability

    • การแมปพารามิเตอร์: intent แต่ละรายการอาจมีพารามิเตอร์ที่จะส่งเป็นข้อมูล extra ของ Intent

ตัวอย่างต่อไปนี้แสดงคำจำกัดความของความสามารถใน shortcuts.xml สำหรับ actions.intent.START_EXERCISE ซึ่งเป็น BII ที่ช่วยให้ผู้ใช้ใช้คำสั่งเสียงกับ Assistant เพื่อเริ่มออกกำลังกายในแอปฟิตเนสได้

<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
  <capability android:name="actions.intent.START_EXERCISE">
    <intent
      android:action="android.intent.action.VIEW"
      android:targetPackage="com.example.sampleApp"
      android:targetClass="com.example.sampleApp.ExerciseActivity">
      <parameter
        android:name="exercise.name"
        android:key="exerciseType"/>
    </intent>
  </capability>
</shortcuts>

ในตัวอย่างก่อนหน้านี้ แอตทริบิวต์ <capability> android:name หมายถึง BII START_EXERCISE หากผู้ใช้เรียกใช้ BII นี้โดยถาม Assistant ว่า "Ok Google เริ่มวิ่งใน ExampleApp" Assistant จะดำเนินการตามคำขอของผู้ใช้โดยใช้ข้อมูลที่ระบุไว้ในองค์ประกอบ intent ที่ฝังอยู่ intent ในตัวอย่างนี้จะกำหนดรายละเอียดต่อไปนี้

  • android:targetPackage จะตั้งค่าแพ็กเกจแอปพลิเคชันเป้าหมายสำหรับ Intent นี้
  • ช่อง android:targetClass จะระบุกิจกรรมปลายทาง ดังนี้ com.example.sampleApp.ExerciseActivity
  • Intent parameter ประกาศการรองรับพารามิเตอร์ BII exercise.name และวิธีส่งค่าพารามิเตอร์ที่รวบรวมจากผู้ใช้เป็นข้อมูลเพิ่มเติมใน intent

เชื่อมโยงทางลัดกับความสามารถ

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