Sesuaikan aplikasi TV referensi

Live TV adalah aplikasi TV referensi yang dirancang untuk perangkat televisi Android. Namun, produsen perangkat mungkin ingin menambahkan lebih banyak fungsi khusus produk, yang tidak tercakup dalam penerapan default TV Langsung, seperti penyesuaian gambar, mode permainan, atau mode 3D. Untuk mendukung fungsi atau opsi khusus perangkat ini, TV Langsung mendukung penyesuaian berikut:

  • Mengaktifkan mode peralihan waktu, yang memungkinkan pengguna untuk menjeda, memajukan, dan memundurkan. Mengonfigurasi mode peralihan waktu untuk menggunakan penyimpanan eksternal, bukan penyimpanan internal.
  • Menambahkan opsi ke baris opsi TV.
  • Menambahkan baris khusus dan menambahkan opsi di dalamnya.

Catatan : Saluran Langsung adalah penerapan TV Langsung Google yang dapat digunakan sebagaimana adanya pada perangkat dengan layanan Google. Untuk menyesuaikan Saluran Langsung, ganti com.android.tv.* dengan com.google.android.tv.* dalam petunjuk ini.

Sesuaikan TV Langsung

Untuk menyesuaikan Live TV, perangkat Android TV target memerlukan paket penyesuaian yang diinstal, yang harus berupa aplikasi sistem bawaan dengan izin com.android.tv.permission.CUSTOMIZE_TV_APP .

TV Langsung mencari paket sistem dengan izin ini, memeriksa file sumber daya, dan mendeteksi Aktivitas paket yang ditandai dengan kategori tertentu untuk memproses penyesuaian.

Poin penting : Hanya satu paket yang dapat menyesuaikan TV Langsung.

Konfigurasikan mode peralihan waktu

Pergeseran waktu (trickplay) memungkinkan perangkat televisi Android menjeda, memundurkan, dan mempercepat pemutaran saluran. Dalam implementasi TV Langsung, peralihan waktu dapat digunakan melalui UI kontrol Play . Pergeseran waktu diaktifkan secara default di TV Langsung, namun dapat dinonaktifkan. Pergeseran waktu juga dapat dikonfigurasi untuk menggunakan penyimpanan eksternal saja.

Untuk mengonfigurasi peralihan waktu, tambahkan sumber daya string trickplay_mode dan tetapkan nilainya ke salah satu opsi berikut:

  • enabled : Mengaktifkan peralihan waktu. Ini adalah nilai default ketika tidak ada opsi yang diberikan.
  • disabled : Menonaktifkan peralihan waktu.
  • use_external_storage_only : Konfigurasikan peralihan waktu untuk menggunakan penyimpanan eksternal.
<string name="trickplay_mode">use_external_storage_only</string>
UI kontrol pemutaran diaktifkan setelah menekan tombol tengah D-pad.

Gambar 1 . UI kontrol pemutaran diaktifkan setelah menekan tombol tengah D-pad.

Sesuaikan opsi TV

Produsen perangkat dapat menambahkan opsi khusus untuk pengaturan TV Langsung ke menu opsi TV yang ada, seperti menambahkan pintasan ke pengaturan Gambar Suara.

Untuk menunjukkan opsi khusus, deklarasikan filter maksud yang memfilter kategori com.android.tv.category.OPTIONS_ROW dalam suatu aktivitas. Fitur kustom diterapkan oleh produsen perangkat dalam aktivitas. Aktivitas diluncurkan jika opsi diklik. Judul dan ikon aktivitas digunakan untuk opsi tersebut. Opsi TV yang disesuaikan harus sesuai dengan UI yang ada untuk memberikan pengalaman pengguna terbaik.

Catatan : Suatu aktivitas hanya dapat menangani satu opsi karena Live TV tidak dapat membedakan filter maksud dalam aktivitas dengan kategori yang sama karena keterbatasan Android. Lihat Menangani beberapa opsi dalam suatu aktivitas untuk solusinya.

Produsen perangkat juga dapat menempatkan opsi khusus sebelum atau sesudah opsi yang ada dengan mendefinisikan android:priority di AndroidManifest.xml . Opsi dengan nilai prioritas yang ditentukan lebih rendah dari 100 ditampilkan sebelum item yang ada dan nilai lebih tinggi dari 100 ditampilkan setelahnya. Beberapa opsi khusus (sebelum atau sesudah opsi yang ada) diurutkan berdasarkan prioritasnya dalam urutan menaik. Jika opsi memiliki prioritas yang sama, urutan di antara opsi tersebut tidak ditentukan.

Dalam contoh ini, opsi muncul pertama kali di baris opsi TV, dan PictureSettingsActivity diluncurkan jika opsi tersebut diklik.

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

Contoh baris opsi TV yang disesuaikan

Gambar 2 . Contoh baris opsi TV yang disesuaikan (Kecerahan dan Penghematan Energi).

Contoh opsi TV khusus.

Gambar 3 . Contoh opsi TV khusus.

Menangani beberapa opsi dalam suatu aktivitas

Sebuah opsi dipetakan ke filter maksud aktivitas dan sebaliknya. Karena Android tidak membedakan filter maksud dengan kategori dan tindakan yang sama, suatu aktivitas hanya menangani satu opsi, meskipun beberapa filter maksud dideklarasikan di dalamnya. Untuk menangani beberapa opsi dalam suatu aktivitas, gunakan <activity-alias> di AndroidManifest.xml . Dalam aktivitas tersebut, gunakan getIntent().getComponent() untuk mengidentifikasi opsi yang diklik.

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

Buat baris khusus

Produsen perangkat dapat menambahkan dan menyesuaikan baris di atas baris opsi TV. Baris khusus ini bersifat opsional.

Judul baris

Tentukan string partner_row_title di res/values/strings.xml . Nilai string digunakan untuk judul baris kustom.

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

Opsi khusus

Untuk menambahkan opsi khusus ke baris khusus, ikuti proses menambahkan opsi ke menu opsi TV, tetapi ubah nama kategori menjadi 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>

Contoh baris kustom opsional.

Gambar 4 . Contoh baris kustom opsional.

Contoh dialog opsi kustom.

Gambar 5 . Contoh dialog opsi kustom.