Tuỳ chỉnh ứng dụng TV tham chiếu

Truyền hình trực tiếp là một ứng dụng truyền hình tham khảo đượ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 mà cách triển khai mặc định của TV trực tiếp không hỗ trợ, chẳng hạn như điều chỉnh hình ảnh, chế độ trò chơi hoặc chế độ 3D. Để hỗ trợ các chức năng hoặc tuỳ chọn dành riêng cho thiết bị này, Live TV 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 nhanh và tua lại. Định cấu hình chế độ tua lại để sử dụng bộ nhớ ngoài thay vì bộ nhớ trong.
  • Thêm tuỳ chọn vào hàng tuỳ chọn TV.
  • Thêm một hàng tuỳ chỉnh và thêm các tuỳ chọn trong đó.

Lưu ý: Kênh trực tiếp là cách Google triển khai tính năng Truyền hình trực tiếp. Bạn có thể sử dụng tính năng này trên các thiết bị có dịch vụ của Google. Để tuỳ chỉnh Kênh phát trực tiếp, hãy thay thế com.android.tv.* bằng com.google.android.tv.* trong các hướng dẫn này.

Tuỳ chỉnh tính năng Truyền hình trực tiếp

Để tuỳ chỉnh Truyền hình trực tiếp, thiết bị Android TV mục tiêu cần cài đặt một gói tuỳ chỉnh. Gói này phải là một ứng dụng hệ thống tạo sẵn có quyền com.android.tv.permission.CUSTOMIZE_TV_APP.

Live TV tìm kiếm một gói hệ thống có quyền này, kiểm tra các tệp tài nguyên 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ý hoạt động tuỳ chỉnh.

Lưu ý quan trọng: Chỉ một gói mới có thể tuỳ chỉnh Truyền hình trực tuyến.

Định cấu hình chế độ chuyển đổi thời gian

Tính năng chuyển đổi thời gian (chuyển phát nhanh) cho phép các thiết bị TV Android tạm dừng, tua lại và phát nhanh kênh. Trong quá trình triển khai Live TV, bạn có thể sử dụng tính năng tua lại thời gian thông qua giao diện người dùng Play controls (Điều khiển phát). Theo mặc định, tính năng tua lại được bật trong TV trực tiếp, nhưng bạn có thể tắt tính năng này. Bạn cũng có thể định cấu hình tính năng tua lại để chỉ sử dụng bộ nhớ ngoài.

Để định cấu hình tính năng chuyển đổi thời gian, hãy thêm tài nguyên chuỗi trickplay_mode và đặt giá trị của tài nguyên đó thành một trong các tuỳ chọn sau:

  • enabled: Bật tính năng chuyển đổi thời gian. Đây là giá trị mặc định khi không có tuỳ chọn nào được cung cấp.
  • disabled: Tắt tính năng chuyển đổi thời gian.
  • use_external_storage_only: Định cấu hình tính năng chuyển tiếp 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 điều khiển Play được kích hoạt sau khi nhấn nút giữa của D-pad.

Hình 1 Giao diện người dùng Play controls (Chế độ điều khiển trò chơi) đượ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 tuỳ chọn tuỳ chỉnh cho phần cài đặt Truyền hình trực tiếp vào trình đơn tuỳ chọn truyền hình hiện có, 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 một bộ lọc ý định lọc danh mục com.android.tv.category.OPTIONS_ROW trong một hoạt động. Nhà sản xuất thiết bị triển khai tính năng tuỳ chỉnh trong hoạt động. Hoạt động sẽ khởi chạy nếu bạn 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 tuỳ chọn này. Các tuỳ chọn tuỳ chỉnh cho TV phải khớp với giao diện người dùng hiện có để mang lại trải nghiệm tốt nhất cho người dùng.

Lưu ý: Một hoạt động chỉ có thể xử lý một tuỳ chọn vì Live TV không thể phân biệt các bộ lọc ý định trong một hoạt động có cùng danh mục do giới hạn của Android. Hãy xem phần Xử lý nhiều tuỳ chọn trong một hoạt động để biết giải pháp.

Nhà sản xuất thiết bị cũng có thể đặt một tuỳ chọn tuỳ chỉnh trước hoặc sau các tuỳ chọn hiện có bằng cách xác định android:priority trong AndroidManifest.xml. Tuỳ chọn có giá trị mức độ ưu tiên được xác định thấp hơn 100 sẽ hiển thị trước các mục hiện có và giá trị cao hơn 100 sẽ hiển thị sau. Nhiều tuỳ chọn tuỳ chỉnh (trước hoặc sau các tuỳ chọn hiện có) được sắp xếp theo mức độ ưu tiên theo thứ tự tăng dần. Nếu các tuỳ chọn có cùng mức độ ưu tiên, thì thứ tự giữa các tuỳ chọn đó sẽ không được xác định.

Trong ví dụ này, tuỳ chọn này xuất hiện đầu tiên trong hàng tuỳ chọn TV và PictureSettingsActivity sẽ khởi chạy nếu người dùng 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 truyền hình

Hình 2. Mẫu hàng tuỳ chọn TV (Độ sáng và Tiết kiệm năng lượng).

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

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

Xử lý nhiều tuỳ chọn trong một hoạt động

Một tuỳ chọn liên kết đến 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 có cùng danh mục và hành động, nên một 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 tuỳ chọn đã nhấp.

<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. Bạn không bắt buộc phải sử dụng hàng tuỳ chỉnh này.

Tiêu đề hàng

Xác định chuỗi partner_row_title trong res/values/strings.xml. Giá trị của chuỗi được dùng cho tiêu đề hàng tuỳ chỉnh.

<string name="partner_row_title">Partner Row</string>

Tùy chọn tùy chỉnh

Để thêm tuỳ chọn tuỳ chỉnh vào hàng tuỳ chỉnh, hãy làm theo quy trình thêm tuỳ chọn vào trình đơn tuỳ chọn TV, nhưng thay đổi tên danh mục thành 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>

Mẫu hàng tuỳ chỉnh không bắt buộc.

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

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

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