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 implementasi default Live TV, seperti penyesuaian gambar, mode permainan, atau mode 3D. Untuk mendukung fungsi atau opsi khusus perangkat ini, Live TV mendukung penyesuaian berikut:
- Mengaktifkan mode pergeseran 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 implementasi TV Langsung Google yang dapat digunakan apa adanya pada perangkat dengan layanan Google. Untuk menyesuaikan Saluran Langsung, ganti com.android.tv.*
dengan com.google.android.tv.*
dalam petunjuk ini.
Menyesuaikan TV Langsung
Untuk menyesuaikan TV Langsung, 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 khusus untuk memproses penyesuaian.
Poin utama : Hanya satu paket yang dapat menyesuaikan TV Langsung.
Mengonfigurasi mode pergeseran waktu
Pergeseran waktu (trickplay) memungkinkan perangkat televisi Android untuk menjeda, memundurkan, dan memutar saluran maju cepat. Dalam implementasi Live TV, pergeseran waktu dapat digunakan melalui UI kontrol Play . Pergeseran waktu diaktifkan secara default di TV Langsung, tetapi dapat dinonaktifkan. Pergeseran waktu juga dapat dikonfigurasi untuk menggunakan penyimpanan eksternal saja.
Untuk mengonfigurasi pergeseran waktu, tambahkan sumber daya string trickplay_mode
dan atur nilainya ke salah satu opsi berikut:
-
enabled
: Mengaktifkan pergeseran waktu. Ini adalah nilai default ketika tidak ada opsi yang diberikan. -
disabled
: Nonaktifkan pergeseran waktu. -
use_external_storage_only
: Konfigurasikan pergeseran waktu untuk menggunakan penyimpanan eksternal.
<string name="trickplay_mode">use_external_storage_only</string>
Menyesuaikan 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 diimplementasikan oleh produsen perangkat dalam aktivitas. Aktivitas diluncurkan jika opsi diklik. Judul dan ikon aktivitas digunakan untuk opsi. Opsi TV yang disesuaikan harus sesuai dengan UI yang ada untuk memberikan pengalaman pengguna terbaik.
Catatan : Aktivitas hanya dapat menangani satu opsi karena TV Langsung tidak dapat membedakan filter maksud dalam aktivitas dengan kategori yang sama karena batasan Android. Lihat Menangani beberapa opsi dalam aktivitas untuk solusi.
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 yang lebih tinggi dari 100 ditampilkan setelahnya. Beberapa opsi kustom (baik sebelum atau setelah opsi yang ada) diurutkan berdasarkan prioritasnya dalam urutan menaik. Jika opsi memiliki prioritas yang sama, urutan di antara mereka tidak ditentukan.
Dalam contoh ini, opsi muncul pertama kali di baris opsi TV, dan PictureSettingsActivity diluncurkan jika opsi 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>
Menangani beberapa opsi dalam suatu aktivitas
Opsi memetakan ke filter maksud aktivitas dan sebaliknya. Karena Android tidak membedakan filter maksud dengan kategori dan tindakan yang sama, 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, 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>
Membuat baris khusus
Produsen perangkat dapat menambahkan dan menyesuaikan baris di atas baris opsi TV. Baris kustom ini 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 untuk 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>