Tuỳ chỉnh ứng dụng truyền hình tham chiếu

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>
Giao diện người dùng của bộ điều khiển Play được kích hoạt sau
nhấn nút giữa của D-pad.

Hình 1 Giao diện người dùng Play controls (Điều khiển phát) được kích hoạt sau khi nhấn Nút giữa của D-pad.

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>

Mẫu hàng tuỳ chọn cho TV tuỳ chỉnh

Hình 2. Ví dụ về hàng tuỳ chọn TV được tuỳ chỉnh (Độ sáng và Tiết kiệm năng lượng).

Mẫu các lựa chọn TV tuỳ chỉnh.

Hình 3. Mẫu các lựa chọn TV tuỳ chỉnh.

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>

Hàng tuỳ chỉnh mẫu (không bắt buộc).

Hình 4. Hàng tuỳ chỉnh mẫu (không bắt buộc).

Hộp thoại tuỳ chọn mẫu.

Hình 5. Hộp thoại tuỳ chọn mẫu.