เอกสารนี้มีจุดมุ่งหมายเพื่ออธิบายวิธีที่นักพัฒนาแอปของบุคคลที่สาม (3P) สามารถเพิ่ม Deep Link ลงในแอปสื่อ AAOS Deep Link ของสื่อช่วยให้คุณเปิดแอปสื่อ AAOS ผ่าน Deep Link ได้ในลักษณะเดียวกับบนอุปกรณ์เคลื่อนที่
เวอร์ชันที่รองรับ
หากต้องการดูเวอร์ชันล่าสุดที่รองรับ โปรดดูอาร์ติแฟกต์การสร้างล่าสุด
CarMediaApp.apkTestMediaApp.apk
วิธีการทำงาน
เมื่อเปิด Deep Link ใน AAOS ระบบจะเปิดแอปสื่อที่จัดการ รูปแบบเฉพาะ จากนั้นแอปสื่อจะถอดรหัส URL เพื่อสร้าง Intent ของสื่อ พร้อมข้อมูลในลิงก์นั้น แล้วใช้ Intent ดังกล่าวเพื่อเปิดหน้าจอสื่อ
การใช้งานเพื่อรองรับ Intent ใหม่และส่วนเสริมใหม่มีดังนี้
จัดรูปแบบที่อัปเดตของ Intent ที่นักพัฒนาแอปบุคคลที่สามสามารถจัดการได้ เพื่อให้นักพัฒนาแอปส่งข้อมูลที่จำเป็นผ่าน Intent ไปยังสื่อได้
จัดการ Intent จากแอปของบุคคลที่สามซึ่งมีรายการสื่อหรือคำค้นหาที่เฉพาะเจาะจง แล้วเปิดหน้าที่มีข้อมูลที่ขอใน Media
นักพัฒนาแอปบุคคลที่สามมีหน้าที่อัปเดตแอปเพื่อให้แอปสามารถเรียกใช้โดย Intent ของ URI เว็บและส่งข้อมูลที่จำเป็นไปยังสื่อผ่าน Intent
ข้อกำหนดสำหรับแอปของบุคคลที่สาม
TmaTrampolineActivity ในแอป TestMediaApp เป็นเพียงตัวอย่าง
ขั้นตอนที่ 1
นักพัฒนาแอปต้องมีกิจกรรมที่คล้ายกับ TmaTrampolineActivity ใน
TestMediaApp หากต้องการ Deep Link กิจกรรมนี้ต้องมีตัวกรอง Intent ในไฟล์ Manifest ตัวกรอง Intent นี้ควรรวม URL ทั้งหมดที่จะจัดการ
ตามที่อธิบายไว้ในเพิ่มตัวกรอง Intent สำหรับลิงก์ขาเข้า
เราขอแนะนำให้ตัวกรอง Intent มีสคีมและโฮสต์ที่แอปเวอร์ชันโทรศัพท์ใช้เพื่อให้มั่นใจว่า Deep Link จะใช้งานได้ในทุกแพลตฟอร์ม
<activity android:name=".automotive.TmaTrampolineActivity"
android:exported="true">
<intent-filter android:label="TmaTrampolineActivity_label">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="app"
android:host="com.android.car.media.testmediaapp"/>
</intent-filter>
</activity>
ขั้นตอนที่ 2
ในกิจกรรมนี้ แอปสื่อจะดึงข้อมูลจากลิงก์และ สร้าง Intent ไปยังสื่อ
Media รองรับ 2 ฟังก์ชัน ฟังก์ชันแรกคือการเปิด รายการสื่อด้วยรายการสื่อที่เฉพาะเจาะจง และฟังก์ชันที่สองคือการแสดง ผลลัพธ์ของคำค้นหา ต้องระบุรหัสรายการสื่อหรือสตริงคำค้นหาในส่วนเสริมของ Intent
ข้อมูลความตั้งใจ
หากต้องการใช้ฟีเจอร์นี้ นักพัฒนาแอปต้องติดตั้ง Media เวอร์ชันล่าสุดเพื่อรองรับการดำเนินการผ่าน Intent ACTION_MEDIA_TEMPLATE_V2 Intent
action และส่วนเสริมของ Intent ต่อไปนี้จะรวมอยู่ในคลาส MediaIntentExtras.java
โดยคุณเพิ่มส่วนเสริมเหล่านี้ลงในเจตนาได้
| ชื่อเพิ่มเติม | ค่า | คำอธิบาย |
|---|---|---|
| EXTRA_KEY_MEDIA_COMPONENT | สตริงสำหรับ componentName | คีย์ที่ใช้เป็นฟิลด์เสริมสตริงที่มี ACTION_MEDIA_TEMPLATE_V2 เพื่อระบุ MediaBrowserService ที่ผู้ใช้ต้องการเริ่มสื่อ หากไม่ได้ระบุ ระบบจะเปิดแหล่งที่มาของสื่อที่ใช้งานอยู่ |
| EXTRA_KEY_MEDIA_ID | รหัสสื่อ | คีย์ที่ใช้เป็นฟิลด์พิเศษของสตริงที่มี ACTION_MEDIA_TEMPLATE_V2 ระบุรายการสื่อที่ควร แสดงในมุมมองเรียกดู ต้องตรงกับรหัสที่ใช้ใน MediaBrowserServiceCompat API |
| EXTRA_KEY_SEARCH_QUERY | คำค้นหา | คีย์ที่ใช้เป็นฟิลด์พิเศษของสตริงที่มี ACTION_MEDIA_TEMPLATE_V2 เพื่อระบุคำค้นหาที่จะส่ง ไปยัง MediaBrowserService ปัจจุบันหรือที่ระบุ ด้วย EXTRA_KEY_MEDIA_COMPONENT |
| EXTRA_KEY_SEARCH_ACTION | จำนวนเต็ม:
|
คีย์ที่ใช้เป็นฟิลด์เสริม int ที่มี ACTION_MEDIA_TEMPLATE_V2
เพื่อระบุการดำเนินการสำหรับสื่อที่จะดำเนินการหลังจากโหลดคำค้นหาแล้ว
ค่าจะเป็น EXTRA_VALUE_NO_SEARCH_ACTION หรือ EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH ควรใช้ส่วนเพิ่มเติมนี้กับ EXTRA_KEY_SEARCH_QUERY เท่านั้น หากไม่ได้ระบุค่านี้ ระบบจะไม่ดำเนินการใดๆ เพิ่มเติมหลังจากโหลดผลการค้นหาแล้ว |
กรณีพิเศษ
หากมีการเพิ่มส่วนเสริมหลายรายการลงใน Intent พร้อมกัน เช่น มีทั้ง
EXTRA_KEY_MEDIA_IDและEXTRA_KEY_SEARCH_QUERYรวมอยู่ใน Intent นี้
การติดตั้งใช้งานปัจจุบันจะจัดการรหัสสื่อก่อน และเมื่อรหัสสื่อว่างเปล่าเท่านั้น
สื่อจึงจะเรียกใช้คำค้นหา
ทดสอบ
เมื่อผสานรวมแอปสื่อของบุคคลที่สามเสร็จแล้ว ให้ใช้คำสั่ง adb เพื่อส่ง Deep Link
สื่อจะเปิดขึ้นพร้อมข้อมูลที่ต้องการ ตัวอย่างเช่น คำสั่งนี้
สำหรับ TestMediaApp
adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"