TV Live 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 Live TV, seperti penyesuaian gambar, mode game, atau mode 3D. Untuk mendukung fungsi atau opsi khusus perangkat ini, Live TV mendukung penyesuaian berikut:
- Mengaktifkan mode pergeseran waktu, yang memungkinkan pengguna menjeda, mempercepat, dan memundurkan. Mengonfigurasi mode pergeseran waktu untuk menggunakan penyimpanan eksternal, bukan penyimpanan internal.
- Menambahkan opsi ke baris opsi TV.
- Menambahkan baris kustom dan menambahkan opsi di dalamnya.
Catatan: Channel
Live adalah penerapan Live TV oleh Google yang dapat digunakan apa adanya di
perangkat dengan layanan Google. Untuk menyesuaikan Channel Live, ganti
com.android.tv.*
dengan com.google.android.tv.*
dalam petunjuk
ini.
Menyesuaikan TV Live
Untuk menyesuaikan TV Live, perangkat Android TV target memerlukan paket penyesuaian
yang diinstal, yang harus berupa aplikasi sistem bawaan dengan
izin com.android.tv.permission.CUSTOMIZE_TV_APP
.
Live TV menelusuri paket sistem dengan izin ini, memeriksa file resource, dan mendeteksi Aktivitas paket yang ditandai dengan kategori tertentu untuk memproses penyesuaian.
Poin penting: Hanya satu paket yang dapat menyesuaikan TV Live.
Mengonfigurasi mode pergeseran waktu
Pergeseran waktu (trickplay) memungkinkan perangkat televisi Android menjeda, memutar ulang, dan mempercepat pemutaran saluran. Dalam penerapan Live TV, pergeseran waktu dapat digunakan melalui UI Kontrol putar. Penundaan waktu diaktifkan secara default di Live TV, tetapi dapat dinonaktifkan. Pergeseran waktu juga dapat dikonfigurasi untuk menggunakan penyimpanan eksternal saja.
Untuk mengonfigurasi pergeseran waktu, tambahkan resource string trickplay_mode
dan tetapkan nilainya ke salah satu opsi berikut:
enabled
: Mengaktifkan pergeseran waktu. Ini adalah nilai default saat tidak ada opsi yang diberikan.disabled
: Menonaktifkan pergeseran waktu.use_external_storage_only
: Mengonfigurasi pergeseran waktu untuk menggunakan penyimpanan eksternal.
<string name="trickplay_mode">use_external_storage_only</string>

Gambar 1. UI Kontrol putar diaktifkan setelah menekan tombol tengah D-pad.
Menyesuaikan opsi TV
Produsen perangkat dapat menambahkan opsi kustom untuk setelan TV Live ke menu opsi TV yang ada, seperti menambahkan pintasan ke setelan Gambar Suara.
Untuk menunjukkan opsi kustom, deklarasikan filter intent yang memfilter kategori
com.android.tv.category.OPTIONS_ROW
dalam aktivitas. Fitur kustom
diimplementasikan oleh produsen perangkat dalam aktivitas. Aktivitas
akan diluncurkan jika opsi diklik. Judul dan ikon aktivitas digunakan untuk
opsi. Opsi TV yang disesuaikan harus cocok dengan UI yang ada untuk memberikan
pengalaman pengguna terbaik.
Catatan: Aktivitas hanya dapat menangani satu opsi karena Live TV tidak dapat membedakan filter intent dalam aktivitas dengan kategori yang sama karena batasan Android. Lihat Menangani beberapa opsi dalam aktivitas untuk solusinya.
Produsen perangkat juga dapat menempatkan opsi kustom sebelum atau setelah opsi
yang ada dengan menentukan android:priority
di AndroidManifest.xml
.
Opsi dengan nilai prioritas yang ditentukan lebih rendah dari 100 akan ditampilkan sebelum item
yang ada dan nilai yang lebih tinggi dari 100 akan ditampilkan setelahnya. Beberapa opsi kustom (baik sebelum maupun setelah opsi yang ada) diurutkan berdasarkan prioritasnya dalam urutan menaik. Jika opsi memiliki prioritas yang sama, urutannya tidak ditentukan.
Dalam contoh ini, opsi muncul terlebih dahulu 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>
Gambar 2. Contoh baris opsi TV yang disesuaikan (Kecerahan dan Penghematan Energi).
Gambar 3. Contoh opsi TV kustom.
Menangani beberapa opsi dalam aktivitas
Opsi dipetakan ke filter intent aktivitas dan sebaliknya. Karena Android
tidak membedakan filter intent dengan kategori dan tindakan yang sama, aktivitas
hanya menangani satu opsi, meskipun beberapa filter intent dideklarasikan
di dalamnya. Untuk menangani beberapa opsi dalam 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 kustom
Produsen perangkat dapat menambahkan dan menyesuaikan baris di atas baris opsi TV. Baris kustom 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 kustom ke baris kustom, 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>
Gambar 4. Contoh baris kustom opsional.
Gambar 5. Contoh dialog opsi kustom.