Truyền hình trực tuyến là một ứng dụng truyền hình tham chiếu được thiết kế cho các thiết bị truyền hình Android. Tuy nhiên, nhà sản xuất thiết bị có thể muốn thêm các chức năng dành riêng cho sản phẩm, đó là không thuộc phạm vi triển khai mặc định của Truyền hình trực tuyến, chẳng hạn như hình ảnh điều chỉnh, chế độ trò chơi hoặc chế độ 3D. Để hỗ trợ các chức năng dành riêng cho thiết bị này hoặc , Truyền hình trực tuyến hỗ trợ các tuỳ chỉnh sau:
- Bật chế độ dịch chuyển thời gian, cho phép người dùng tạm dừng, tua đi, và tua lại. Định cấu hình chế độ chuyển dịch thời gian để sử dụng bộ nhớ ngoài thay vì bộ nhớ trong.
- Đang thêm lựa chọn vào hàng lựa chọn TV.
- Thêm một hàng tuỳ chỉnh và thêm tuỳ chọn vào hàng đó.
Lưu ý: Trực tiếp
Kênh là một hình thức triển khai Truyền hình trực tuyến của Google, có thể dùng ngay cả khi đang bật
các thiết bị có dịch vụ của Google. Để tuỳ chỉnh Kênh trực tiếp, hãy thay thế
com.android.tv.*
cùng với com.google.android.tv.*
trong những chiến dịch này
.
Tuỳ chỉnh truyền hình trực tuyến
Để tuỳ chỉnh Truyền hình trực tuyến, thiết bị Android TV mục tiêu cần có gói tuỳ chỉnh
phải là một ứng dụng hệ thống được tạo sẵn có
Quyền com.android.tv.permission.CUSTOMIZE_TV_APP
.
Truyền hình trực tuyến tìm kiếm một gói hệ thống có quyền này, kiểm tra tài nguyên tệp và phát hiện Hoạt động của gói được đánh dấu bằng các danh mục cụ thể xử lý tuỳ chỉnh.
Lưu ý quan trọng: Chỉ một gói có thể tuỳ chỉnh Truyền hình trực tuyến.
Định cấu hình chế độ dịch chuyển thời gian
Dịch vụ ghi dịch thời gian cho phép các thiết bị TV Android tạm dừng, tua lại, và tua đi thời gian phát kênh. Trong khi triển khai Truyền hình trực tuyến, hoạt động dịch chuyển thời gian thông qua giao diện người dùng Play controls (Điều khiển phát). Tính năng dịch chuyển thời gian được bật theo mặc định trong Truyền hình trực tuyến nhưng có thể tắt. Tính năng dịch chuyển thời gian cũng có thể được định cấu hình để sử dụng bộ nhớ ngoài.
Để định cấu hình tính năng dịch chuyển thời gian, hãy thêm tài nguyên chuỗi trickplay_mode
và đặt giá trị cho một trong các lựa chọn sau:
enabled
: Bật dịch chuyển thời gian. Đây là giá trị mặc định khi không có tuỳ chọn nào được đưa ra.disabled
: Tắt dịch vụ chuyển dịch thời gian.use_external_storage_only
: Định cấu hình dịch vụ chuyển dịch thời gian để sử dụng bộ nhớ ngoài.
<string name="trickplay_mode">use_external_storage_only</string>
Tuỳ chỉnh các lựa chọn cho TV
Nhà sản xuất thiết bị có thể thêm các lựa chọn tuỳ chỉnh cho chế độ cài đặt Truyền hình trực tuyến vào Trình đơn tuỳ chọn của TV, chẳng hạn như thêm lối tắt vào phần cài đặt Hình ảnh âm thanh.
Để cho biết một tuỳ chọn tuỳ chỉnh, hãy khai báo bộ lọc ý định có chức năng lọc danh mục
com.android.tv.category.OPTIONS_ROW
trong một hoạt động. Tính năng tuỳ chỉnh
được nhà sản xuất thiết bị triển khai trong hoạt động. Hoạt động
sẽ khởi chạy nếu người dùng nhấp vào tuỳ chọn này. Tiêu đề và biểu tượng của hoạt động được dùng cho
tùy chọn đó. Các tuỳ chọn TV tuỳ chỉnh phải khớp với giao diện người dùng hiện tại để cung cấp
trải nghiệm người dùng tốt nhất.
Lưu ý: Mỗi hoạt động chỉ có thể xử lý một tuỳ chọn bởi vì Truyền hình trực tuyến không thể phân biệt các bộ lọc ý định trong một hoạt động với cùng một hoạt động do giới hạn của Android. Xem bài viết Xử lý nhiều lựa chọn trong một hoạt động để có giải pháp.
Nhà sản xuất thiết bị cũng có thể đặt một lựa chọn tuỳ chỉnh trước hoặc sau phiên bản
bằng cách xác định android:priority
trong AndroidManifest.xml
.
Một lựa chọn có giá trị ưu tiên đã xác định thấp hơn 100 sẽ xuất hiện trước lựa chọn hiện có
mục và giá trị lớn hơn 100 sẽ xuất hiện sau đó. Nhiều tuỳ chọn tuỳ chỉnh (
trước hoặc sau các lựa chọn hiện có) được sắp xếp theo mức độ ưu tiên tăng dần
đơn đặt hàng. Nếu các lựa chọn có cùng mức độ ưu tiên thì không thể xác định thứ tự của các lựa chọn đó.
Trong ví dụ này, lựa chọn xuất hiện đầu tiên trong hàng lựa chọn TV và ImageSettingsActivity sẽ chạy nếu bạn nhấp vào tuỳ chọn này.
<activity android:name=".PictureSettingsActivity" android:label="@string/activity_label_picture_settings" android:theme="@style/Theme.Panel"> <intent-filter android:icon="@drawable/ic_tvoptions_brightness" android:label="@string/option_label_brightness" android:priority="0"> <action android:name="android.intent.action.MAIN" /> <category android:name="com.android.tv.category.OPTIONS_ROW" /> </intent-filter> </activity>
Xử lý nhiều tuỳ chọn trong một hoạt động
Một tuỳ chọn liên kết với bộ lọc ý định của một hoạt động và ngược lại. Vì Android
không phân biệt các bộ lọc ý định với cùng danh mục và hành động,
hoạt động chỉ xử lý một tuỳ chọn, ngay cả khi nhiều bộ lọc ý định được khai báo
trong đó. Để xử lý nhiều tuỳ chọn trong một hoạt động, hãy sử dụng
<activity-alias>
trong AndroidManifest.xml
. Trong
hoạt động, hãy sử dụng getIntent().getComponent()
để xác định lựa chọn được nhấp vào.
<activity-alias android:name=".AnyUniqueName" android:targetActivity=".PictureSettingsActivity"> <intent-filter android:icon="@drawable/ic_tvoptions_energy_saving" android:label="@string/option_label_energy_saving" android:priority="1"> <action android:name="android.intent.action.MAIN" /> <category android:name="com.android.tv.category.OPTIONS_ROW" /> </intent-filter> </activity-alias>
Tạo hàng tuỳ chỉnh
Nhà sản xuất thiết bị có thể thêm và tuỳ chỉnh một hàng phía trên hàng tuỳ chọn TV. Hàng tuỳ chỉnh này là không bắt buộc.
Tiêu đề hàng
Xác định một chuỗi partner_row_title
trong
res/values/strings.xml
Giá trị của chuỗi được dùng cho khoảng không quảng cáo tuỳ chỉnh
tiêu đề hàng.
<string name="partner_row_title">Partner Row</string>
Tùy chọn tùy chỉnh
Để thêm các lựa chọn tuỳ chỉnh vào hàng tuỳ chỉnh, hãy làm theo quy trình để thêm các lựa chọn
vào trình đơn tùy chọn TV, nhưng thay đổi tên danh mục thành
Hãy com.android.tv.category.PARTNER_ROW
.
<activity android:name=".ThreeDimensionalSettingDialogActivity" android:label="@string/activity_label_3d" android:theme="@android:style/Theme.Material.Light.Dialog"> <intent-filter android:icon="@drawable/ic_tvoptions_3d" android:priority="0"> <action android:name="android.intent.action.MAIN" /> <category android:name="com.android.tv.category.PARTNER_ROW" /> </intent-filter> </activity>