เอกสารนี้มีจุดมุ่งหมายเพื่ออธิบายวิธีที่นักพัฒนาแอปของบุคคลที่สาม (3P) สามารถเพิ่ม Deep Link ไปยังแอปสื่อใน AAOS Deep Link ของสื่อช่วยให้คุณเปิดแอปสื่อ AAOS ผ่าน Deep Link ได้ในลักษณะเดียวกับบนอุปกรณ์เคลื่อนที่
เวอร์ชันที่รองรับ
หากต้องการดูเวอร์ชันล่าสุดที่รองรับ ให้ดูอาร์ติแฟกต์บิลด์ล่าสุด
CarMediaApp.apk
TestMediaApp.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 ไปยังสื่อ
สื่อรองรับ 2 ฟังก์ชัน ฟังก์ชันแรกคือการเปิดรายการสื่อด้วยรายการสื่อที่เฉพาะเจาะจง และฟังก์ชันที่ 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 นี้
การติดตั้งใช้งานปัจจุบันจะจัดการรหัสสื่อก่อน และเมื่อรหัสสื่อว่างเปล่าเท่านั้น
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"