Tích hợp đường liên kết sâu vào ứng dụng Media

Tài liệu này nhằm mô tả cách nhà phát triển ứng dụng bên thứ ba (3P) có thể thêm đường liên kết sâu vào các ứng dụng đa phương tiện AAOS. Đường liên kết sâu đến nội dung nghe nhìn cho phép bạn mở các ứng dụng AAOS Media thông qua đường liên kết sâu giống như trên thiết bị di động.

Phiên bản được hỗ trợ

Để tải phiên bản được hỗ trợ mới nhất, hãy xem Cấu phần phần mềm bản dựng mới nhất.

  • CarMediaApp.apk
  • TestMediaApp.apk

Cách hoạt động

Khi một đường liên kết sâu được mở trên AAOS, đường liên kết đó sẽ mở ứng dụng đa phương tiện xử lý giao thức cụ thể. Sau đó, ứng dụng đa phương tiện sẽ giải mã URL, tạo một ý định Media (Nội dung đa phương tiện) bằng thông tin trong đường liên kết đó, sau đó sử dụng ý định đó để mở màn hình nội dung đa phương tiện.

Cách triển khai để hỗ trợ các ý định mới và các tính năng bổ sung mới:

  • Cung cấp định dạng mới nhất của các ý định mà Media có thể xử lý cho nhà phát triển bên thứ ba để họ có thể gửi thông tin cần thiết thông qua ý định đó cho Media.

  • Xử lý các ý định từ các ứng dụng bên thứ ba chứa một mục nội dung nghe nhìn cụ thể hoặc một truy vấn tìm kiếm, sau đó mở một trang có thông tin được yêu cầu trong phần Nội dung nghe nhìn.

Nhà phát triển bên thứ ba chịu trách nhiệm cập nhật ứng dụng của họ để ứng dụng có thể được gọi bằng ý định URI web và gửi thông tin cần thiết đến Media thông qua một ý định.

Yêu cầu đối với ứng dụng bên thứ ba

TmaTrampolineActivity trong ứng dụng TestMediaApp được cung cấp dưới dạng ví dụ.

Bước 1

Nhà phát triển phải có một hoạt động tương tự như TmaTrampolineActivity trong TestMediaApp. Để liên kết sâu, hoạt động này cần có bộ lọc ý định trong tệp kê khai. Bộ lọc ý định này phải bao gồm tất cả URL cần xử lý như mô tả trong phần Thêm bộ lọc ý định cho các đường liên kết đến.

Bạn nên thêm các giao thức và máy chủ lưu trữ mà ứng dụng phiên bản điện thoại sử dụng vào bộ lọc ý định để đảm bảo các đường liên kết sâu hoạt động trên các nền tảng.

<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>

Bước 2

Trong hoạt động này, ứng dụng Media truy xuất thông tin từ đường liên kết và tạo một ý định cho Media.

Media hỗ trợ hai chức năng. Hàm đầu tiên là mở một mục nội dung nghe nhìn bằng một mục nội dung nghe nhìn cụ thể và hàm thứ hai là hiển thị kết quả của một cụm từ tìm kiếm. Mã mục nội dung đa phương tiện hoặc chuỗi truy vấn tìm kiếm phải được đưa vào ý định bổ sung.

Thông tin về ý định

Để sử dụng tính năng này, nhà phát triển phải cài đặt phiên bản mới nhất của Media để hỗ trợ thao tác theo ý định, ACTION_MEDIA_TEMPLATE_V2. Thao tác theo ý định và các ý định bổ sung sau đây được đưa vào lớp MediaIntentExtras.java. Bạn có thể thêm các thông tin bổ sung này vào ý định.

Tên bổ sung Giá trị Mô tả
EXTRA_KEY_MEDIA_COMPONENT Chuỗi cho componentName Khoá được dùng làm trường bổ sung chuỗi với ACTION_MEDIA_TEMPLATE_V2 để chỉ định MediaBrowserService mà người dùng muốn bắt đầu nội dung nghe nhìn. Khi không được chỉ định, nguồn nội dung nghe nhìn đang hoạt động sẽ được mở.
EXTRA_KEY_MEDIA_ID Mã nhận dạng nội dung đa phương tiện Khoá được dùng làm trường bổ sung chuỗi với ACTION_MEDIA_TEMPLATE_V2 chỉ định mục nội dung nghe nhìn sẽ hiển thị trong chế độ xem Browse (Duyệt qua). Phải khớp với mã nhận dạng được dùng trong API MediaBrowserServiceCompat.
EXTRA_KEY_SEARCH_QUERY Truy vấn tìm kiếm Khoá được dùng làm trường bổ sung chuỗi với ACTION_MEDIA_TEMPLATE_V2 để chỉ định cụm từ tìm kiếm cần gửi đến MediaBrowserService hiện tại hoặc cụm từ tìm kiếm được chỉ định bằng EXTRA_KEY_MEDIA_COMPONENT
EXTRA_KEY_SEARCH_ACTION

Số nguyên:

  • 0: EXTRA_VALUE_NO_SEARCH_ACTION
  • 1: EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH
Khoá được dùng làm trường bổ sung int với ACTION_MEDIA_TEMPLATE_V2 để chỉ định hành động mà Media sẽ thực hiện sau khi tải cụm từ tìm kiếm.

Giá trị này là một trong các giá trị EXTRA_VALUE_NO_SEARCH_ACTION hoặc EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH. Bạn chỉ nên sử dụng thông tin bổ sung này với EXTRA_KEY_SEARCH_QUERY.

Nếu bạn không chỉ định thông tin bổ sung này, thì hệ thống sẽ không thực hiện thêm hành động nào sau khi tải kết quả tìm kiếm.

Các trường hợp đặc biệt

Nếu bạn thêm một số thành phần bổ sung vào ý định cùng nhau, chẳng hạn như cả EXTRA_KEY_MEDIA_IDEXTRA_KEY_SEARCH_QUERY đều có trong ý định này, thì cách triển khai hiện tại sẽ xử lý mã nhận dạng nội dung đa phương tiện trước tiên và chỉ khi mã nhận dạng nội dung đa phương tiện trống thì Media mới chạy truy vấn tìm kiếm.

Kiểm tra

Sau khi tích hợp xong ứng dụng đa phương tiện của bên thứ ba, hãy sử dụng lệnh adb để gửi một liên kết sâu. Nội dung nghe nhìn sẽ mở ra cùng với thông tin mong muốn. Ví dụ: lệnh này cho TestMediaApp:

adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"