
Android TV Input Framework (TIF) menyederhanakan pengiriman konten langsung ke Android TV. Android TIF menyediakan API standar bagi produsen untuk membuat modul input untuk mengontrol Android TV, dan mengaktifkan pencarian dan rekomendasi TV langsung melalui metadata yang diterbitkan oleh Input TV.
Kerangka kerja ini tidak berupaya untuk menerapkan standar TV atau persyaratan regional, tetapi mempermudah produsen perangkat untuk memenuhi standar siaran TV digital regional tanpa implementasi ulang. Dokumentasi di bagian ini mungkin juga berguna bagi pengembang aplikasi pihak ketiga yang ingin membuat Input TV khusus.
Komponen
Implementasi Android TV Input Framework menyertakan Pengelola Input TV. TIF berfungsi dengan Aplikasi TV, aplikasi sistem yang tidak dapat digantikan oleh aplikasi pihak ketiga, untuk mengakses saluran tuner bawaan dan IP. Aplikasi TV berkomunikasi dengan modul Input TV yang disediakan oleh produsen perangkat atau pihak lain melalui Pengelola Input TV.
Kerangka Input TV terdiri dari:
- Penyedia TV (
com.android.providers.tv.TvProvider
): basis data saluran, program, dan izin terkait - Aplikasi TV (
com.android.tv.TvActivity
): aplikasi yang menangani interaksi pengguna - Pengelola Input TV (
android.media.tv.TvInputManager
): memungkinkan Input TV untuk berkomunikasi dengan Aplikasi TV - Input TV: aplikasi yang mewakili tuner fisik atau virtual dan port input
- Input TV HAL ( modul
tv_input
): definisi perangkat keras yang memungkinkan Input TV sistem untuk mengakses perangkat keras khusus TV saat diimplementasikan - Kontrol Orang Tua: teknologi yang memungkinkan pemblokiran saluran dan program
- HDMI-CEC: teknologi untuk memungkinkan kendali jarak jauh berbagai perangkat melalui HDMI
- Kerangka Kerja Tuner: kerangka kerja untuk input TV Tuner Terpasang
- MediaCas: kerangka kerja untuk akses bersyarat
- Tuner Resource Manager: layanan untuk mengelola sumber daya perangkat keras untuk input TV, MediaCas, dan input Tuner Bawaan
Komponen-komponen ini dibahas secara rinci di bawah ini. Lihat diagram berikut untuk tampilan mendetail arsitektur Android TV Input Framework.

Mengalir
Berikut adalah bagaimana arsitektur dijalankan:
- Pengguna melihat dan berinteraksi dengan Aplikasi TV, aplikasi sistem yang tidak dapat digantikan oleh aplikasi pihak ketiga.
- Aplikasi TV menampilkan konten AV dari Input TV.
- Aplikasi TV tidak dapat berbicara langsung dengan Input TV. Pengelola Input TV mengidentifikasi status Input TV untuk Aplikasi TV. Lihat Pengelola Input TV di bawah untuk detail selengkapnya tentang batasan ini.
Izin
- Hanya Input TV
signatureOrSystem
dan Aplikasi TV yang memiliki akses penuh ke database Penyedia TV dan dapat menerima KeyEvents. - Hanya Input TV sistem yang dapat mengakses Input TV HAL melalui layanan Pengelola Input TV. Input TV diakses satu-ke-satu melalui sesi Manajer Input TV.
- Input TV pihak ketiga memiliki akses yang dikunci-paket ke database Penyedia TV dan dapat MEMBACA/MENULIS hanya untuk mencocokkan baris paket.
- Input TV pihak ketiga dapat menampilkan konten mereka sendiri atau konten dari input TV passthrough produsen perangkat, seperti HDMI1. Mereka tidak dapat menampilkan konten dari input TV non-passthrough, seperti tuner bawaan atau IPTV.
- Izin
TV_INPUT_HARDWARE
untuk aplikasi Input TV perangkat keras, memberi sinyal kepada Layanan Pengelola Input TV untuk memberi tahu layanan Input TV saat boot untuk memanggil Layanan Pengelola Input TV dan menambahkan Input TV-nya. Izin ini memungkinkan aplikasi Input TV perangkat keras untuk mendukung beberapa Input TV per layanan Input TV, serta dapat menambahkan dan menghapus Input TV yang didukung secara dinamis.
Penyedia TV
Database Penyedia TV menyimpan saluran dan program dari Input TV. Penyedia TV juga menerbitkan dan mengelola izin terkait sehingga Input TV hanya dapat melihat rekamannya sendiri. Misalnya, Input TV tertentu hanya dapat melihat saluran dan program yang disediakannya dan dilarang mengakses saluran dan program Input TV lainnya.
Penyedia TV memetakan "genre siaran" ke "genre kanonis" secara internal. Input TV bertanggung jawab untuk mengisi "genre siaran" dengan nilai dalam standar siaran yang mendasarinya, dan kolom "genre kanonis" akan otomatis diisi dengan genre terkait yang benar dari android.provider.TvContract.Genres
. Misalnya, dengan standar siaran ATSC A/65 dan program dengan genre 0x25 (artinya "Olahraga"), Input TV akan mengisi "genre siaran" dengan String "Olahraga" dan Penyedia TV akan mengisi bidang "genre kanonis" dengan nilai yang dipetakan android.provider.TvContract.Genres.SPORTS
.
Lihat diagram di bawah ini untuk tampilan detail Penyedia TV.

Hanya aplikasi di partisi sistem istimewa yang dapat membaca seluruh database Penyedia TV.
Input TV passthrough tidak menyimpan saluran dan program.
Selain bidang standar untuk saluran dan program, database Penyedia TV juga menawarkan bidang jenis BLOB, COLUMN_INTERNAL_PROVIDER_DATA
, di setiap tabel yang dapat digunakan Input TV untuk menyimpan data arbitrer. Data BLOB tersebut dapat menyertakan informasi khusus, seperti frekuensi tuner terkait, dan dapat disediakan dalam buffer protokol atau bentuk lainnya. Bidang yang Dapat Ditelusuri tersedia untuk membuat saluran tertentu tidak tersedia dalam pencarian (seperti untuk memenuhi persyaratan khusus negara untuk perlindungan konten).
Contoh bidang basis data
Penyedia TV mendukung data terstruktur dalam tabel saluran ( android.provider.TvContract.Channels
) dan program ( android.provider.TvContract.Programs
). Tabel ini diisi dan diakses oleh Input TV dan aplikasi sistem seperti Aplikasi TV. Tabel ini memiliki empat jenis bidang:
- Tampilan: Bidang tampilan berisi informasi yang mungkin ingin ditampilkan oleh aplikasi kepada pengguna, seperti nama saluran (
COLUMN_DISPLAY_NAME
) atau nomor (COLUMN_DISPLAY_NUMBER
), atau judul program yang sedang ditonton. - Metadata: Ada tiga bidang untuk mengidentifikasi konten, menurut standar yang relevan, seperti ID aliran transportasi saluran (
COLUMN_TRANSPORT_STREAM_ID
), ID jaringan asli (COLUMN_ORIGINAL_NETWORK_ID
) dan id layanan (COLUMN_SERVICE_ID
). - Data internal : Bidang yang digunakan khusus untuk Input TV.
Beberapa kolom, sepertiCOLUMN_INTERNAL_PROVIDER_DATA
, adalah kolom BLOB yang dapat disesuaikan di mana Masukan TV dapat menyimpan sembarang metadata tentang saluran atau programnya. - Bendera: Bidang bendera menunjukkan apakah saluran harus dibatasi dari pencarian, penjelajahan, atau penayangan. Ini hanya dapat disetel di tingkat saluran. Semua program tunduk pada pengaturan di saluran.
-
COLUMN_SEARCHABLE
: Membatasi pencarian dari beberapa saluran mungkin merupakan persyaratan di wilayah tertentu.COLUMN_SEARCHABLE = 0
berarti saluran tidak boleh ditampilkan di hasil pencarian. -
COLUMN_BROWSABLE
: Hanya dapat dilihat oleh aplikasi sistem. Membatasi saluran agar tidak dapat diakses oleh aplikasi.COLUMN_BROWSABLE = 0
berarti saluran tersebut tidak boleh dimasukkan dalam daftar saluran. -
COLUMN_LOCKED
: Hanya dapat dilihat oleh aplikasi sistem. Membatasi saluran agar tidak dilihat oleh akun yang tidak valid tanpa memasukkan kode PIN.COLUMN_LOCKED = 1
artinya saluran harus dilindungi oleh kontrol orang tua.
Untuk daftar bidang yang lebih lengkap, lihat android/frameworks/base/media/java/android/media/tv/TvContract.java
Izin dan kontrol akses
Semua bidang dapat dilihat oleh siapa saja yang memiliki akses ke baris yang sesuai. Tidak ada bidang yang dapat diakses langsung oleh pengguna; mereka hanya melihat permukaan Aplikasi TV, aplikasi Sistem, atau Input TV.
- Setiap baris memiliki
PACKAGE_NAME
, paket (aplikasi) yang memiliki baris tersebut, dicentang pada Query, Insert, Update melalui TvProvider.java. Input TV hanya dapat mengakses informasi yang ditulisnya dan ditutup dari informasi yang diberikan oleh Input TV lainnya. - BACA, TULIS izin melalui AndroidManifest.xml (memerlukan persetujuan pengguna) untuk menentukan saluran yang tersedia.
- Hanya aplikasi
signatureOrSystem
yang dapat memperoleh izinACCESS_ALL_EPG_DATA
untuk mengakses seluruh database.
Manajer Masukan TV
Pengelola Input TV menyediakan API sistem pusat untuk Keseluruhan Kerangka Input TV Android. Ini menengahi interaksi antara aplikasi dan Input TV dan menyediakan fungsi kontrol orang tua. Sesi Pengelola Input TV harus dibuat satu per satu dengan Input TV. Pengelola Input TV mengizinkan akses ke Input TV yang terpasang sehingga aplikasi dapat:
- Buat daftar input TV dan periksa statusnya
- Buat sesi dan kelola pendengar
Untuk sesi, Input TV dapat disetel oleh Aplikasi TV hanya ke URI yang telah ditambahkan ke database Penyedia TV, kecuali untuk Input TV passthrough yang dapat disetel menggunakan TvContract.buildChannelUriForPassthroughInput()
. Input TV mungkin juga diatur volumenya. Input TV yang disediakan dan ditandatangani oleh produsen perangkat (aplikasi tanda tangan) atau aplikasi lain yang diinstal di partisi sistem akan memiliki akses ke seluruh database Penyedia TV. Akses ini dapat digunakan untuk membuat aplikasi untuk menjelajahi dan menelusuri semua saluran dan program TV yang tersedia.
Aplikasi dapat membuat dan mendaftarkan TvInputCallback
dengan android.media.tv.TvInputManager
untuk dipanggil kembali pada perubahan status Input TV atau pada penambahan atau penghapusan Input TV. Misalnya, Aplikasi TV dapat bereaksi saat Input TV terputus dengan menampilkannya sebagai tidak tersambung dan mencegah pemilihannya.
Pengelola Input TV meringkas komunikasi antara Aplikasi TV dan Input TV. Antarmuka standar Pengelola Input TV dan Input TV memungkinkan beberapa produsen perangkat membuat Aplikasi TV mereka sendiri sambil membantu semua Input TV pihak ketiga berfungsi di semua Aplikasi TV.
Masukan TV
Input TV adalah aplikasi Android dalam arti memiliki AndroidManifest.xml dan diinstal (melalui Play, pra-instal, atau sideload). Android TV mendukung aplikasi sistem pra-instal, aplikasi yang ditandatangani oleh produsen perangkat, dan Input TV pihak ketiga.
Beberapa input, seperti input HDMI atau input tuner bawaan, hanya dapat disediakan oleh pabrikan karena berhubungan langsung dengan perangkat keras yang mendasarinya. Lainnya, seperti IPTV, pemindahan tempat, dan STB eksternal, dapat disediakan oleh pihak ketiga sebagai APK di Google Play Store. Setelah diunduh dan dipasang, masukan baru dapat dipilih dalam Aplikasi TV.
Contoh input passthrough

Dalam contoh ini, Input TV yang disediakan oleh produsen perangkat dipercaya dan memiliki akses penuh ke Penyedia TV. Sebagai Input TV passthrough, ini tidak mendaftarkan saluran atau program apa pun ke Penyedia TV. Untuk mendapatkan URI yang digunakan untuk referensi input passthrough, gunakan metode utilitas android.media.tv.TvContract
buildChannelUriForPassthroughInput(String inputId)
. Aplikasi TV berkomunikasi dengan Pengelola Input TV untuk mencapai Input TV HDMI.
Contoh tuner bawaan

Dalam contoh ini, Input TV Tuner Bawaan yang disediakan oleh produsen perangkat tepercaya dan memiliki akses penuh ke Penyedia TV.
Contoh input pihak ketiga

Dalam contoh ini, Input TV STB eksternal disediakan oleh pihak ketiga. Karena Input TV itu tidak dapat langsung mengakses umpan video HDMI yang masuk, ia harus melalui Pengelola Input TV dan menggunakan Input TV HDMI yang disediakan oleh produsen perangkat.
Melalui Pengelola Input TV, Input TV STB eksternal dapat berbicara dengan Input TV HDMI dan memintanya untuk menampilkan video di HDMI1. Jadi Input TV STB dapat mengontrol TV sementara Input TV HDMI yang disediakan pabrikan merender video.
Contoh gambar dalam gambar (PIP).

Diagram di atas menunjukkan bagaimana tombol pada remote control diteruskan ke Input TV tertentu untuk tampilan gambar dalam gambar (PIP). Penekanan tombol tersebut diinterpretasikan oleh driver perangkat keras yang disediakan oleh produsen perangkat, mengonversi kode pindaian perangkat keras menjadi kode kunci Android dan meneruskannya ke pipa masukan standar Android InputReader
dan fungsi InputDispatcher
sebagai KeyEvents . Ini pada gilirannya memicu peristiwa di Aplikasi TV jika sedang fokus.
Hanya Input TV sistem yang memenuhi syarat untuk menerima InputEvents
, dan hanya jika input tersebut memiliki izin sistem RECEIVE_INPUT_EVENT
. Input TV bertanggung jawab untuk menentukan InputEvent mana yang akan digunakan dan harus mengizinkan Aplikasi TV untuk menangani kunci yang tidak perlu digunakan.
Aplikasi TV bertanggung jawab untuk mengetahui sistem Input TV mana yang aktif, artinya dipilih oleh pengguna, dan untuk memperjelas KeyEvents
yang masuk dan merutekannya ke sesi Pengelola Input TV yang benar, memanggil dispatchInputEvent()
untuk meneruskan acara ke Input TV terkait .
Contoh masukan MHEG-5
Diagram berikut menampilkan tampilan yang lebih mendetail tentang cara KeyEvents
dirutekan melalui Android TIF.

Ini menggambarkan aliran aplikasi tombol Merah, umum di Eropa untuk memungkinkan pengguna mengakses aplikasi interaktif di televisi mereka. Aplikasi dapat dikirimkan melalui aliran transportasi ini. Saat tombol diklik, pengguna dapat berinteraksi dengan aplikasi siaran ini. Misalnya, Anda dapat menggunakan aplikasi siaran ini untuk mengakses halaman web terkait atau skor olahraga.
Lihat bagian aplikasi Siaran untuk mempelajari cara aplikasi siaran berinteraksi dengan Aplikasi TV.
Dalam contoh ini:
- Aplikasi TV dalam fokus dan menerima semua kunci.
-
KeyEvents
(misalnya tombol Merah) diteruskan ke Input TV aktif sebagaiInputEvents.
- Input TV sistem terintegrasi dengan tumpukan MHEG-5 dan memiliki izin sistem
RECEIVE_INPUT_EVENT
. - Saat menerima kode kunci aktivasi (misalnya tombol Merah), Masukan TV mengaktifkan aplikasi siaran.
- Input TV menggunakan
KeyEvents
sebagaiInputEvents
dan aplikasi siaran adalah fokusnya dan menanganiInputEvents
hingga ditutup.
Catatan : Input TV pihak ketiga tidak pernah menerima kunci.
Masukan TV HAL
Input TV HAL membantu pengembangan Input TV untuk mengakses perangkat keras khusus TV. Seperti HAL Android lainnya, TV Input HAL ( tv_input
) tersedia di pohon sumber AOSP dan vendor mengembangkan penerapannya.
Aplikasi TV
Aplikasi TV sistem menyajikan konten TV langsung kepada pengguna. Aplikasi TV referensi (TV Langsung) disediakan bersama platform Android, yang dapat digunakan apa adanya, disesuaikan, diperluas, atau diganti oleh produsen perangkat. Kode sumber tersedia di Android Open Source Project, dan Anda bisa memulainya di artikel aplikasi Reference TV .
Produsen perangkat dapat memperluas Aplikasi TV mereka untuk mengimplementasikan fitur produsen perangkat atau khusus negara, namun hal ini tidak termasuk dalam cakupan TIF atau Aplikasi TV referensi.
Minimal, Aplikasi TV sistem harus menangani tugas-tugas berikut:
Pengaturan dan konfigurasi
- Deteksi otomatis Input TV
- Biarkan Input TV memulai penyiapan saluran
- Mengontrol setelan orang tua
- Edit saluran
Melihat
- Akses dan navigasikan semua saluran TV
- Akses bilah informasi program TV
- Menampilkan data Electronic Programming Guide (EPG).
- Mendukung banyak trek audio dan subtitle
- Berikan tantangan PIN kontrol orang tua
- Izinkan hamparan UI Input TV untuk standar TV (HbbTV, dll.)
- Mengisi hasil penelusuran untuk saluran dan program TV
- Tampilkan kartu penautan aplikasi
- Mendukung API timeshifting
- Tangani fungsionalitas DVR dan dukung API perekaman TV
Set fitur ini akan meningkat sejalan dengan versi Android baru di mana platform TIF API diperpanjang. CTS Verifier menyediakan cakupan uji kompatibilitas.
Dukungan untuk Input TV pihak ketiga
Android TV menyediakan API developer untuk input TV pihak ketiga, memungkinkan aplikasi terinstal mengirimkan saluran software ke pengalaman TV live. Untuk memastikan penerapan perangkat Android yang kompatibel, Aplikasi TV sistem memiliki beberapa tanggung jawab untuk menampilkan input dan saluran TV pihak ketiga kepada pengguna. Referensi aplikasi TV Langsung menyediakan implementasi yang kompatibel; jika mengganti Aplikasi TV sistem, produsen perangkat harus memastikan aplikasi mereka sendiri menyediakan kompatibilitas yang serupa, untuk memenuhi ekspektasi developer di semua perangkat Android TV.
Aplikasi TV sistem harus memunculkan input pihak ketiga bersama dengan layanan TV langsung default perangkat. Janji dari API pengembang adalah bahwa pengguna akan dapat menemukan saluran (setelah dipasang) dalam pengalaman TV standar mereka.
Diferensiasi visual antara saluran bawaan dan saluran pihak ketiga diperbolehkan, seperti yang ditentukan di bagian Aplikasi TV CDD Android.
Bagian berikut menunjukkan bagaimana aplikasi Live TV memenuhi persyaratan CDD.
Pengaturan saluran baru
Penambahan masukan/saluran pihak ketiga baru dimulai dengan pengguna menemukan dan memasang Masukan TV dari toko aplikasi, seperti Google Play.
Beberapa input TV pihak ketiga secara otomatis menambahkan saluran ke database TvProvider. Namun sebagian besar akan memberikan aktivitas Penyiapan untuk memungkinkan pengguna menyiapkan saluran mereka, memberikan detail login, dan tindakan lainnya. Aplikasi TV sistem perlu memastikan pengguna dapat mengaktifkan aktivitas Pengaturan ini, itulah sebabnya CDD memerlukan input pihak ketiga menjadi tindakan navigasi minimal dari Aplikasi TV utama.
Referensi aplikasi TV Langsung menyediakan menu Sumber Saluran untuk mengakses input.




Selain itu, kartu notifikasi ditampilkan di bagian atas menu Aplikasi TV setelah TvInput baru dipasang, untuk membawa pengguna langsung ke Pengaturan:

Jika pengguna mengambil tindakan melalui notifikasi, mereka dapat memilih untuk menyiapkan sumbernya seperti yang terlihat pada Gambar 10.
Lihat Menentukan Layanan Input TV Anda untuk harapan pengembang di bidang ini.
Sesuaikan daftar saluran
Produsen perangkat dapat menyediakan UI untuk menyembunyikan saluran tertentu dan memungkinkan pengguna mengelola EPG mereka sendiri. Live TV termasuk fasilitas ini.


EPG
Pengembang masukan pihak ketiga harus yakin bahwa pengguna dapat dengan mudah membuka saluran mereka selama penggunaan umum, di semua perangkat Android TV yang kompatibel.
Saluran dari masukan pihak ketiga harus ditampilkan sebagai bagian dari pengalaman TV langsung standar perangkat EPG. Pemisahan visual atau kategori terpisah untuk saluran pihak ketiga dapat digunakan (lihat bagian Aplikasi TV pada CDD Android) —yang terpenting adalah pengguna dapat menemukan saluran yang telah mereka instal.
Mencari
Produsen harus mengimplementasikan Aplikasi TV untuk menyertakan hasil pencarian untuk permintaan pencarian global guna memastikan pengalaman pengguna terbaik. Live TV menyediakan implementasi (lihat yang memberikan hasil dari input pihak ketiga (diperlukan untuk kompatibilitas platform) serta input bawaan.
Pergeseran waktu
Untuk perangkat di Android 6.0 dan yang lebih baru, Aplikasi TV harus mendukung API pergeseran waktu framework Android . Selain itu, pabrikan harus menerapkan kontrol pemutaran di Aplikasi TV, yang memungkinkan pengguna menjeda, melanjutkan, memundurkan, dan mempercepat pemutaran.
Untuk Input TV yang mendukung pergeseran waktu, Aplikasi TV perlu menampilkan kontrol pemutaran.

DVR
Untuk perangkat di Android 7.0 dan yang lebih baru, Aplikasi TV harus mendukung API perekaman TV framework Android , untuk mendukung, mencantumkan, dan memutar program yang direkam.
Hal ini memungkinkan produsen perangkat menyambungkan subsistem DVR mereka ke TIF dan secara dramatis mengurangi upaya integrasi yang diperlukan untuk mengaktifkan atau mengintegrasikan fungsionalitas DVR pada perangkat TV. Ini juga memungkinkan pihak ketiga untuk menyediakan sistem DVR aftermarket yang dapat dicolokkan ke perangkat Android TV.
Selain merekam konten langsung, Aplikasi TV juga menangani konflik sumber daya. Misalnya, jika perangkat memiliki dua tuner, perangkat dapat merekam dua program sekaligus. Jika pengguna meminta untuk merekam tiga, Aplikasi TV harus menangani konflik dan harus memunculkan pemberitahuan atau permintaan agar pengguna menjadwalkan prioritas untuk permintaan ini.
Aplikasi TV juga dapat menerapkan logika yang lebih canggih seperti menanyakan kepada pengguna apakah mereka ingin merekam semua episode mendatang dalam sebuah serial saat mereka meminta untuk merekam satu episode.
Lihat diagram berikut untuk mengetahui kemungkinan penerapan DVR di Android TV.

- Layanan Input TV memberi tahu Aplikasi TV berapa banyak tuner yang tersedia sehingga Aplikasi TV dapat menangani kemungkinan konflik sumber daya.
- Aplikasi TV menerima permintaan yang dimulai pengguna untuk merekam program TV.
- Aplikasi TV menyimpan jadwal perekaman di basis data internalnya.
- Saat waktunya merekam, Aplikasi TV menyampaikan permintaan untuk menyetel saluran yang terkait dengan rekaman.
- Layanan Input TV menerima permintaan ini, menanggapi apakah ada sumber daya yang sesuai atau tidak, dan mencari saluran.
- Kemudian Aplikasi TV meneruskan permintaan untuk mulai merekam ke Pengelola Input TV.
- Layanan Input TV menerima permintaan ini dan mulai merekam.
- Layanan Input TV menyimpan data video aktual dalam penyimpanannya, yang dapat berupa penyimpanan eksternal atau penyimpanan cloud.
- Saat tiba waktunya untuk menyelesaikan perekaman, Aplikasi TV meneruskan permintaan berhenti merekam ke Pengelola Input TV.
- Setelah Layanan Input TV menerima permintaan, perekaman dihentikan dan metadata terkait ditambahkan ke Penyedia TV sehingga Aplikasi TV dapat menampilkan rekaman kepada pengguna saat diminta.
Untuk informasi selengkapnya tentang penerapan fitur Perekaman di layanan Input TV, lihat artikel Perekaman TV ini.
Sumber daya yang berguna
- CDD Android dan API pengembang yang terdokumentasi adalah referensi definitif.
- CTS Verifier menjalankan API sebagai bagian dari program pengujian kompatibilitas. Menjalankan ini melawan TV Langsung mungkin merupakan cara yang berguna untuk melihat EPG, Pencarian, Kontrol Orang Tua, dan persyaratan lain dalam konteks input pihak ketiga.
- Lihat Menentukan Layanan Input TV Anda untuk harapan pengembang di bidang ini.
Bimbingan orang tua
Kontrol orang tua memungkinkan pengguna memblokir saluran dan program yang tidak diinginkan, tetapi melewati pemblokiran dengan memasukkan kode PIN.
Tanggung jawab fungsi kontrol orang tua dibagi antara Aplikasi TV, layanan Pengelola Input TV, Penyedia TV, dan Input TV.
Kontrol orang tua bersifat wajib, dan dicakup oleh Pemverifikasi CTS.
Sejumlah negara telah menetapkan sistem peringkat yang dapat digunakan Input TV melalui API TVContentRating . Selain itu, Input TV dapat mendaftarkan sistem peringkat khusus mereka sendiri seperti yang ditunjukkan oleh uji CTS Verifier, yang memperkenalkan peringkat 'palsu'. Untuk negara-negara yang memiliki sistem rating standar, produsen perangkat dianjurkan untuk menggabungkan Kontrol Orang Tua Kerangka Input TV dengan mekanisme lain yang mungkin mereka sertakan.
penyedia televisi
Setiap baris saluran memiliki bidang COLUMN_LOCKED
yang digunakan untuk mengunci saluran tertentu agar tidak dapat ditonton tanpa memasukkan kode PIN. Kolom program COLUMN_CONTENT_RATING
ditujukan untuk tampilan dan tidak digunakan untuk menerapkan kontrol orang tua.
Manajer Masukan TV
Pengelola Input TV menyimpan setiap TvContentRating
yang diblokir dan merespons isRatingBlocked()
untuk memberi tahu apakah konten dengan rating yang diberikan harus diblokir.
Masukan Televisi
Input TV memeriksa apakah konten saat ini harus diblokir dengan memanggil isRatingBlocked()
di Pengelola Input TV saat peringkat konten yang ditampilkan telah berubah (pada perubahan program atau saluran), atau pengaturan kontrol orang tua telah berubah (pada ACTION_BLOCKED_RATINGS_CHANGED
dan ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED
) . Jika konten harus diblokir, Input TV menonaktifkan audio dan video dan memberi tahu aplikasi TV bahwa konten saat ini diblokir dengan memanggil notifyContentBlocked(TvContentRating)
. Jika konten tidak boleh diblokir, Input TV mengaktifkan audio dan video dan memberi tahu Aplikasi TV bahwa konten saat ini diizinkan dengan memanggil notifyContentAllowed()
.
Aplikasi TV
Untuk menghormati API kontrol orang tua, dan karena itu membuat platform yang kompatibel, Aplikasi TV sistem perlu menyediakan cara bagi pengguna untuk mengelola kontrol orang tua, termasuk untuk peringkat khusus yang didaftarkan oleh aplikasi tertentu.
Aplikasi TV menampilkan UI kode PIN saat diberi tahu oleh Input TV bahwa konten saat ini diblokir atau saat pengguna mencoba melihat saluran yang diblokir.
Aplikasi TV tidak secara langsung menyimpan pengaturan kontrol orang tua. Saat pengguna mengubah pengaturan kontrol orang tua, setiap TvContentRating
yang diblokir disimpan oleh Pengelola Input TV, dan saluran yang diblokir disimpan oleh Penyedia TV.
Aplikasi TV perlu mendeklarasikan izin android.permission.MODIFY_PARENTAL_CONTROLS
untuk mengubah setelan kontrol orang tua.
Produsen perangkat dianjurkan untuk:
- Latih uji kontrol orang tua CTS Verifier terhadap referensi aplikasi TV Langsung untuk demonstrasi persyaratan kompatibilitas.
- Gunakan aplikasi TV Langsung sebagai referensi untuk Aplikasi TV mereka sendiri: khususnya lihat sumber ContentRatingsManager dan RatingSystemsFragment , dan cara mereka menangani peringkat khusus.
HDMI-CEC
HDMI-CEC memungkinkan satu perangkat untuk mengontrol yang lain, sehingga memungkinkan satu remote untuk mengontrol beberapa peralatan di home theater. Ini digunakan oleh Android TV untuk mempercepat penyiapan dan memungkinkan kontrol jarak jauh atas berbagai Input TV melalui Aplikasi TV pusat. Misalnya, ini dapat mengalihkan input, menyalakan atau mematikan perangkat, dan banyak lagi.
Android TIF mengimplementasikan HDMI-CEC sebagai Layanan Kontrol HDMI sehingga produsen perangkat hanya perlu mengembangkan driver tingkat rendah yang berinteraksi dengan Android TV HAL yang ringan, melewati logika bisnis yang lebih rumit. Dalam menyediakan implementasi standar, Android berupaya memitigasi masalah kompatibilitas dengan mengurangi implementasi yang terfragmentasi dan dukungan fitur selektif. Layanan Kontrol HDMI menggunakan layanan Android yang ada, termasuk input dan daya.
Ini berarti implementasi HDMI-CEC yang ada perlu didesain ulang agar dapat beroperasi dengan Android TIF. Kami merekomendasikan platform perangkat keras berisi mikroprosesor untuk menerima daya CEC dan perintah lainnya.

- Bus CEC menerima perintah dari sumber aktif saat ini untuk beralih ke sumber lain.
- Pengemudi meneruskan perintah ke HDMI-CEC HAL.
- HAL memberi tahu semua
ActiveSourceChangeListeners
. - Layanan Kontrol HDMI diberi tahu tentang perubahan sumber melalui
ActiveSourceChangeListener
. - Layanan Pengelola Input TV membuat maksud agar Aplikasi TV mengalihkan sumber.
- Aplikasi TV kemudian membuat Sesi Pengelola Input TV untuk Input TV yang dialihkan dan memanggil
setMain
pada sesi tersebut. - Sesi Manajer Input TV meneruskan informasi ini ke Input TV HDMI.
- Input TV HDMI meminta untuk mengatur permukaan sideband.
- Layanan Pengelola Input TV menghasilkan perintah kontrol perutean yang sesuai kembali ke Layanan Kontrol HDMI saat permukaan disetel.
Pedoman integrasi TV
Aplikasi siaran
Karena setiap negara memiliki persyaratan khusus siaran (MHEG, Teleteks, HbbTV, dan lainnya), produsen diharapkan menyediakan solusi mereka sendiri untuk aplikasi siaran, misalnya:
- MHEG: tumpukan asli
- Teleteks: tumpukan asli
- HbbTV: Solusi HbbTV dari Vewd Software
Dalam rilis Android L, Android TV mengharapkan produsen perangkat menggunakan integrator sistem atau solusi Android untuk tumpukan TV regional, meneruskan permukaan ke tumpukan perangkat lunak TV, atau meneruskan kode kunci yang diperlukan untuk berinteraksi dengan tumpukan lama.
Berikut cara aplikasi siaran dan Aplikasi TV berinteraksi:
- Aplikasi TV dalam fokus, menerima semua kunci.
- Aplikasi TV meneruskan tombol (misalnya tombol Merah) ke perangkat Input TV.
- Perangkat Input TV terintegrasi secara internal dengan tumpukan TV lawas.
- Saat menerima kode kunci aktivasi (misalnya tombol Merah), perangkat Input TV mengaktifkan aplikasi siaran.
- Aplikasi siaran mengambil fokus di Aplikasi TV dan menangani tindakan pengguna.
Untuk pencarian/rekomendasi suara, aplikasi siaran mungkin mendukung pencarian dalam aplikasi untuk pencarian suara.