TV Live adalah aplikasi TV referensi yang dirancang untuk perangkat televisi Android. Namun, produsen perangkat mungkin ingin menambahkan fungsi spesifik produk, yang tidak tercakup dalam implementasi default TV Live, penyesuaian, mode game, atau mode 3D. Untuk mendukung fungsi khusus perangkat ini atau tertentu, TV Live mendukung penyesuaian ini:
- Mengaktifkan mode pergeseran waktu, yang memungkinkan pengguna berhenti sejenak, mempercepat, dan mundur. Mengonfigurasi mode pergeseran waktu yang akan digunakan penyimpanan eksternal, bukan penyimpanan internal.
- Menambahkan opsi ke baris opsi TV.
- Menambahkan baris kustom dan menambahkan opsi di dalamnya.
Catatan: Langsung
Saluran adalah penerapan Google untuk TV Live yang dapat digunakan sebagaimana adanya di
perangkat dengan layanan Google. Untuk menyesuaikan Saluran Langsung, ganti
com.android.tv.*
dengan com.google.android.tv.*
di ini
petunjuk.
Menyesuaikan TV Live
Untuk menyesuaikan TV Live, perangkat Android TV target memerlukan paket penyesuaian
yang harus berupa aplikasi sistem bawaan dengan
Izin com.android.tv.permission.CUSTOMIZE_TV_APP
.
TV live menelusuri paket sistem dengan izin ini, memeriksa resource file, dan mendeteksi Aktivitas paket ditandai dengan kategori spesifik untuk melakukan penyesuaian proses.
Poin penting: Hanya satu paket yang dapat menyesuaikan TV Live.
Mengonfigurasi mode pergeseran waktu
Pengalihan waktu (trickplay) memungkinkan perangkat televisi Android untuk menjeda, memutar ulang, dan mempercepat pemutaran saluran. Dalam implementasi Live TV, pergeseran waktu dapat digunakan melalui UI kontrol Play. Pergeseran waktu diaktifkan secara default di TV live, tetapi dapat dinonaktifkan. Pergeseran waktu juga dapat dikonfigurasi untuk menggunakan ke 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 {i>default<i} saat tidak ada opsi yang diberikan.disabled
: Menonaktifkan pergeseran waktu.use_external_storage_only
: Mengonfigurasi pergeseran waktu yang akan digunakan dan penyimpanan eksternal.
<string name="trickplay_mode">use_external_storage_only</string>
Menyesuaikan opsi TV
Produsen perangkat dapat menambahkan opsi kustom untuk setelan TV Live ke setelan Menu opsi TV, 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 khusus
diimplementasikan oleh produsen perangkat dalam aktivitas tersebut. Aktivitas
diluncurkan jika opsi diklik. Judul dan ikon aktivitas digunakan untuk
memilih opsi tersebut. Opsi TV yang disesuaikan harus cocok dengan UI yang ada untuk memberikan
pengalaman pengguna terbaik.
Catatan: Suatu aktivitas hanya dapat menangani satu opsi karena TV Live tidak bisa membedakan filter intent dalam aktivitas dengan karena keterbatasan Android. Lihat Menangani beberapa opsi dengan aktivitas untuk solusi.
Produsen perangkat juga dapat menempatkan opsi kustom sebelum atau setelah
opsi dengan menentukan android:priority
di AndroidManifest.xml
.
Opsi dengan nilai prioritas yang ditetapkan lebih rendah dari 100 akan ditampilkan sebelum
item dan nilai yang lebih tinggi dari 100 akan ditampilkan setelahnya. Beberapa opsi kustom (salah satu
sebelum atau setelah opsi yang ada) diurutkan berdasarkan prioritasnya dalam urutan menaik
pesanan. 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 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 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 suatu aktivitas, gunakan
<activity-alias>
dalam AndroidManifest.xml
. Di kolom
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>
Buat 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.
<string name="partner_row_title">Partner Row</string>
Opsi khusus
Untuk menambahkan opsi kustom ke baris kustom, ikuti proses penambahan opsi
ke menu opsi TV, tetapi ubah nama kategori menjadi
Sebagai gantinya, 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>