เอกสารนี้มีวัตถุประสงค์เพื่ออธิบายวิธีที่นักพัฒนาแอปบุคคลที่สาม (3P) สามารถเพิ่ม Deep Link ไปยังแอปสื่อ AAOS Deep Link ของสื่อช่วยให้คุณเปิดแอป AAOS Media ได้ผ่าน Deep Link ในลักษณะเดียวกับในอุปกรณ์เคลื่อนที่
เวอร์ชันที่รองรับ
หากต้องการดูเวอร์ชันล่าสุดที่รองรับ โปรดดูอาร์ติแฟกต์การสร้างล่าสุด
CarMediaApp.apk
TestMediaApp.apk
วิธีการทำงาน
เมื่อเปิด Deep Link ใน AAOS ระบบจะเปิดแอปสื่อที่จัดการรูปแบบนั้น จากนั้นแอปสื่อจะถอดรหัส URL, สร้าง Intent ของสื่อที่มีข้อมูลในลิงก์นั้น แล้วใช้ Intent ดังกล่าวเพื่อเปิดหน้าจอสื่อ
การใช้งานเพื่อรองรับ Intent ใหม่และข้อมูลเพิ่มเติมใหม่
ระบุรูปแบบอัปเดตของ Intent ที่ Media จัดการได้ให้กับนักพัฒนาแอปบุคคลที่สามเพื่อให้ส่งข้อมูลที่จำเป็นผ่าน Intent ไปยัง Media ได้
จัดการ Intent จากแอปของบุคคลที่สามซึ่งมีรายการสื่อหรือข้อความค้นหาที่เฉพาะเจาะจง แล้วเปิดหน้าเว็บที่มีข้อมูลที่ขอในสื่อ
นักพัฒนาแอปบุคคลที่สามมีหน้าที่รับผิดชอบในการอัปเดตแอปเพื่อให้แอปเรียกใช้ได้โดย 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 ฟังก์ชัน ฟังก์ชันแรกคือเปิดรายการสื่อที่มีรายการสื่อที่เฉพาะเจาะจง และฟังก์ชันที่ 2 คือแสดงผลการค้นหา รหัสรายการสื่อหรือสตริงคำค้นหาต้องรวมอยู่ในข้อมูลเพิ่มเติมของ Intent
ข้อมูล Intent
หากต้องการใช้ฟีเจอร์นี้ นักพัฒนาแอปต้องติดตั้ง Media เวอร์ชันล่าสุดเพื่อรองรับการดำเนินการตาม Intent ACTION_MEDIA_TEMPLATE_V2
การดำเนินการของ Intent และ Extra ของ Intent ต่อไปนี้จะรวมอยู่ในคลาส MediaIntentExtras.java
คุณสามารถเพิ่มข้อมูลเพิ่มเติมเหล่านี้ลงใน Intent ได้
ชื่อเพิ่มเติม | ค่า | คำอธิบาย |
---|---|---|
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 นี้ การใช้งานปัจจุบันจะจัดการรหัสสื่อก่อน และ Media จะเรียกใช้ข้อความค้นหาก็ต่อเมื่อรหัสสื่อว่างเปล่าเท่านั้น
ทดสอบ
เมื่อผสานรวมแอปสื่อของบุคคลที่สามเสร็จแล้ว ให้ใช้คำสั่ง adb
เพื่อส่ง Deep Link สื่อจะเปิดขึ้นพร้อมข้อมูลที่ต้องการ ตัวอย่างเช่น คำสั่งนี้สำหรับ TestMediaApp
adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"