
Android TV Giriş Çerçevesi (TIF), canlı içeriğin Android TV'ye iletilmesini basitleştirir. Android TIF, üreticilerin Android TV'yi kontrol etmek için giriş modülleri oluşturmaları için standart bir API sağlar ve TV Girişi tarafından yayınlanan meta veriler aracılığıyla canlı TV araması ve öneriler sağlar.
Çerçeve, TV standartlarını veya bölgesel gereksinimleri uygulamaya koymayı amaçlamaz, ancak cihaz üreticilerinin yeniden uygulama yapmadan bölgesel dijital TV yayın standartlarını karşılamasını kolaylaştırır. Bu bölümdeki belgeler, özel TV Girişleri oluşturmak isteyen üçüncü taraf uygulama geliştiricileri için de yararlı olabilir.
Bileşenler
Android TV Giriş Çerçevesi uygulaması, bir TV Giriş Yöneticisi içerir. TIF, yerleşik ve IP tuner kanallarına erişmek için üçüncü taraf bir uygulama tarafından değiştirilemeyen bir sistem uygulaması olan TV Uygulaması ile birlikte çalışır. TV Uygulaması, TV Giriş Yöneticisi aracılığıyla cihaz üreticisi veya diğer taraflar tarafından sağlanan TV Giriş modülleriyle iletişim kurar.
TV Giriş Çerçevesi şunlardan oluşur:
- TV Sağlayıcısı (
com.android.providers.tv.TvProvider
): kanallar, programlar ve ilgili izinlerden oluşan bir veritabanı - TV Uygulaması (
com.android.tv.TvActivity
): Kullanıcı etkileşimini yöneten uygulama - TV Giriş Yöneticisi (
android.media.tv.TvInputManager
): TV Girişlerinin TV Uygulaması ile iletişim kurmasını sağlar - TV Girişi: fiziksel veya sanal alıcıları ve giriş bağlantı noktalarını temsil eden bir uygulama
- TV Girişi HAL (
tv_input
modülü): uygulandığında sistem TV Girişlerinin TV'ye özel donanıma erişmesine izin veren bir donanım tanımı - Ebeveyn Kontrolü: kanalların ve programların engellenmesine izin veren teknoloji
- HDMI-CEC: HDMI üzerinden çeşitli cihazların uzaktan kontrol edilmesini sağlayan teknoloji
- Tuner Çerçevesi: Yerleşik Tuner TV girişi için bir çerçeve
- MediaCas: koşullu erişim için bir çerçeve
- Tuner Resource Manager: TV girişi, MediaCas ve Yerleşik Tuner girişi için donanım kaynağını yöneten bir hizmet
Bu bileşenler aşağıda ayrıntılı olarak ele alınmıştır. Android TV Giriş Çerçevesi mimarisinin ayrıntılı bir görünümü için aşağıdaki şemaya bakın.

Akış
İşte mimarinin nasıl uygulandığı:
- Kullanıcı, üçüncü taraf bir uygulama tarafından değiştirilemeyen bir sistem uygulaması olan TV Uygulamasını görür ve onunla etkileşime girer.
- TV Uygulaması, TV Girişinden gelen AV içeriğini görüntüler.
- TV Uygulaması, TV Girişleriyle doğrudan konuşamaz. TV Giriş Yöneticisi, TV Uygulaması için TV Girişlerinin durumunu tanımlar. Bu sınırlamalar hakkında daha fazla ayrıntı için aşağıdaki TV Giriş Yöneticisine bakın.
izinler
- Yalnızca
signatureOrSystem
veya Sistem TV Girişleri ve TV Uygulaması, TV Sağlayıcı veritabanına tam erişime sahiptir ve KeyEvent'leri alabilir. - Yalnızca sistem TV Girişleri, TV Giriş Yöneticisi hizmeti aracılığıyla TV Girişi HAL'ına erişebilir. TV Girişlerine, TV Giriş Yöneticisi oturumları aracılığıyla bire bir erişilir.
- Üçüncü taraf TV Girişleri, TV Sağlayıcı veritabanına paket kilitli erişime sahiptir ve yalnızca eşleşen paket satırlarını OKUMA/YAZMA yapabilir.
- Üçüncü taraf TV girişleri, kendi içeriklerini veya bir cihaz üreticisinin HDMI1 gibi doğrudan geçişli TV girişlerinden gelen içeriği görüntüleyebilir. Yerleşik veya IPTV alıcısı gibi geçişsiz TV girişlerinden gelen içeriği görüntüleyemezler.
- Bir donanım TV Girişi uygulaması için
TV_INPUT_HARDWARE
izni, TV Giriş Yöneticisi Hizmetine, TV Giriş Yöneticisi Hizmetini başlatması ve TV Girişlerini eklemesi için TV Girişi hizmetini bilgilendirmesi için sinyal gönderir. Bu izin, bir donanım TV Girişi uygulamasının TV Girişi hizmeti başına birden çok TV Girişini desteklemesine ve ayrıca desteklenen TV Girişlerini dinamik olarak ekleyip kaldırabilmesine olanak tanır.
TV Sağlayıcı
TV Sağlayıcı veritabanı, TV Girişlerinden gelen kanalları ve programları saklar. TV Sağlayıcı, TV Girişlerinin yalnızca kendi kayıtlarını görebilmesi için ilişkili izinleri de yayınlar ve yönetir. Örneğin, belirli bir TV Girişi yalnızca sağladığı kanalları ve programları görebilir ve diğer TV Girişlerinin kanal ve programlarına erişmesi yasaktır.
TV Sağlayıcı, "yayın türünü" dahili olarak "kurallı tür" ile eşler. TV Girişleri, "yayın türünü" temel alınan yayın standardındaki değerle doldurmaktan sorumludur ve "standart tür" alanı, android.provider.TvContract.Genres
doğru ilişkili türle otomatik olarak doldurulur. Örneğin, yayın standardı ATSC A/65 ve tür 0x25 ("Spor" anlamına gelir) olan program ile, TV Girişi "yayın türünü" "Spor" Dizesi ile doldurur ve TV Sağlayıcı "standart tür" alanını aşağıdakilerle doldurur: eşlenen değer android.provider.TvContract.Genres.SPORTS
.
TV Sağlayıcının ayrıntılı görünümü için aşağıdaki şemaya bakın.

Yalnızca ayrıcalıklı sistem bölümündeki uygulamalar TV Sağlayıcı veritabanının tamamını okuyabilir.
Geçişli TV girişleri, kanalları ve programları saklamaz.
Kanallar ve programlar için standart alanlara ek olarak, TV Sağlayıcı veritabanı ayrıca TV Girişlerinin rastgele verileri depolamak için kullanabileceği her tabloda COLUMN_INTERNAL_PROVIDER_DATA
BLOB tipi bir alan sunar. Bu BLOB verileri, ilgili tunerin frekansı gibi özel bilgileri içerebilir ve bir protokol arabelleğinde veya başka bir biçimde sağlanabilir. Belirli kanalların aramada kullanılamaması için Aranabilir bir alan mevcuttur (içerik koruması için ülkeye özgü gereksinimleri karşılamak gibi).
Veritabanı alanı örnekleri
TV Sağlayıcı, kanal ( android.provider.TvContract.Channels
) ve program ( android.provider.TvContract.Programs
) tablolarındaki yapılandırılmış verileri destekler. Bu tablolar, TV Girişleri ve TV Uygulaması gibi sistem uygulamaları tarafından doldurulur ve bunlara erişilir. Bu tablolarda dört tür alan vardır:
- Görüntüleme: Görüntüleme alanları, bir kanalın adı (
COLUMN_DISPLAY_NAME
) veya numarası (COLUMN_DISPLAY_NUMBER
) veya görüntülenen programın başlığı gibi uygulamaların kullanıcıya görünür kılmak isteyebileceği bilgileri içerir. - Meta veriler: Bir kanalın aktarım akışı kimliği (
COLUMN_TRANSPORT_STREAM_ID
), orijinal ağ kimliği (COLUMN_ORIGINAL_NETWORK_ID
) ve hizmet kimliği (COLUMN_SERVICE_ID
) gibi ilgili standartlara göre içeriği tanımlamak için üç alan vardır. - Dahili veriler : TV Girişlerinin özel kullanımı için olan alanlar.
COLUMN_INTERNAL_PROVIDER_DATA
gibi bazı alanlar, TV Girişinin kanalları veya programları hakkında rastgele meta verileri depolayabileceği özelleştirilebilir BLOB alanlarıdır. - Bayrak: Bayrak alanları, bir kanalın arama, göz atma veya görüntülemenin kısıtlanıp kısıtlanmayacağını temsil eder. Bu, yalnızca kanal düzeyinde ayarlanabilir. Tüm programlar kanaldaki ayara bağlıdır.
-
COLUMN_SEARCHABLE
: Bazı kanallarda arama kısıtlaması belirli bölgelerde bir gereklilik olabilir.COLUMN_SEARCHABLE = 0
, kanalın arama sonuçlarında gösterilmemesi gerektiği anlamına gelir. -
COLUMN_BROWSABLE
: Yalnızca sistem uygulamalarına görünür. Kanalların uygulamalar tarafından taranmasını kısıtlama.COLUMN_BROWSABLE = 0
, kanalın kanal listesine dahil edilmemesi gerektiği anlamına gelir. -
COLUMN_LOCKED
: Yalnızca sistem uygulamalarına görünür. PIN kodu girmeden kanalın geçersiz hesaplar tarafından görüntülenmesini kısıtlama.COLUMN_LOCKED = 1
, kanalın ebeveyn kontrolü ile korunması gerektiği anlamına gelir.
Alanların daha kapsamlı bir listesi için bkz. android/frameworks/base/media/java/android/media/tv/TvContract.java
İzinler ve erişim kontrolü
Tüm alanlar, ilgili satıra erişimi olan herkes tarafından görülebilir. Hiçbir alana doğrudan kullanıcılar erişemez; yalnızca TV Uygulaması, Sistem uygulamaları veya TV Girişlerinin yüzeyini görürler.
- Her satırda
PACKAGE_NAME
, o satırın sahibi olan paket (uygulama), TvProvider.java ile Sorgula, Ekle, Güncelle üzerinde kontrol edildi. Bir TV Girişi, yalnızca yazdığı bilgilere erişebilir ve diğer TV Girişleri tarafından sağlanan bilgilerden kordon altına alınır. - Kullanılabilir kanalları belirlemek için AndroidManifest.xml aracılığıyla OKUMA, YAZMA izinleri (kullanıcı onayı gerekir).
- Yalnızca
signatureOrSystem
veya Sistem uygulamaları, tüm veritabanına erişmek içinACCESS_ALL_EPG_DATA
izni alabilir.
TV Giriş Yöneticisi
TV Giriş Yöneticisi, genel Android TV Giriş Çerçevesine merkezi bir sistem API'si sağlar. Uygulamalar ve TV Girişleri arasındaki etkileşimi yönetir ve ebeveyn denetimi işlevi sağlar. TV Giriş Yöneticisi oturumları, TV Girişleri ile bire bir oluşturulmalıdır. TV Giriş Yöneticisi, uygulamaların aşağıdakileri yapabilmesi için yüklü TV Girişlerine erişime izin verir:
- TV girişlerini listeleyin ve durumlarını kontrol edin
- Oturumlar oluşturun ve dinleyicileri yönetin
Oturumlar için, bir TV Girişi, TvContract.buildChannelUriForPassthroughInput()
kullanılarak ayarlanabilen geçişli TV Girişleri dışında, TV Uygulaması tarafından yalnızca TV Sağlayıcı veritabanına eklediği URI'lere ayarlanabilir. Bir TV Girişinin ses seviyesi de ayarlanmış olabilir. Cihaz üreticisi (imza uygulamaları) veya sistem bölümünde kurulu diğer uygulamalar tarafından sağlanan ve imzalanan TV Girişleri, TV Sağlayıcı veritabanının tamamına erişime sahip olacaktır. Bu erişim, mevcut tüm TV kanallarına ve programlarına göz atmak ve arama yapmak için uygulamalar oluşturmak için kullanılabilir.
Bir uygulama, bir TV Girişinin durum değişikliğinde veya bir TV Girişinin eklenmesi veya çıkarılmasında geri çağrılmak üzere android.media.tv.TvInputManager
ile bir TvInputCallback
oluşturabilir ve kaydedebilir. Örneğin, bir TV Uygulaması, bir TV Girişi bağlantısı kesildiğinde, bağlı değil olarak görüntüleyerek ve seçimini önleyerek tepki verebilir.
TV Giriş Yöneticisi, TV Uygulaması ve TV Girişleri arasındaki iletişimi soyutlar. TV Giriş Yöneticisi ve TV Girişinin standart arayüzü, birden fazla cihaz üreticisinin kendi TV Uygulamalarını oluşturmasına olanak tanırken, tüm üçüncü taraf TV Girişlerinin tüm TV Uygulamalarında çalışmasına yardımcı olur.
TV Girişleri
TV Girişleri, bir AndroidManifest.xml'ye sahip oldukları ve yüklendiği (Play aracılığıyla, önceden yüklenmiş veya yandan yüklenmiş) anlamında Android uygulamalarıdır. Android TV, önceden yüklenmiş sistem uygulamalarını, cihaz üreticisi tarafından imzalanmış uygulamaları ve üçüncü taraf TV Girişlerini destekler.
HDMI girişi veya yerleşik tuner girişi gibi bazı girişler, doğrudan temel donanımla konuştukları için yalnızca üretici tarafından sağlanabilir. IPTV, yer değiştirme ve harici STB gibi diğerleri, üçüncü taraflarca Google Play Store'da APK olarak sağlanabilir. İndirilip kurulduktan sonra, yeni giriş TV Uygulaması içinden seçilebilir.
Geçiş girişi örneği

Bu örnekte, cihaz üreticisi tarafından sağlanan TV Girişi güvenilirdir ve TV Sağlayıcısına tam erişime sahiptir. Geçişli TV Girişi olarak, TV Sağlayıcısına herhangi bir kanal veya program kaydetmez. Geçiş girişine başvuruda kullanılan URI'yi elde etmek için android.media.tv.TvContract
yardımcı program yöntemini buildChannelUriForPassthroughInput(String inputId)
. TV Uygulaması, HDMI TV Girişine ulaşmak için TV Giriş Yöneticisi ile iletişim kurar.
Dahili tuner örneği

Bu örnekte, cihaz üreticisi tarafından sağlanan Yerleşik Tuner TV Girişi güvenilirdir ve TV Sağlayıcısına tam erişime sahiptir.
Üçüncü taraf giriş örneği

Bu örnekte, harici STB TV Girişi üçüncü bir tarafça sağlanmaktadır. Bu TV Girişi, gelen HDMI video beslemesine doğrudan erişemediğinden, TV Giriş Yöneticisinden geçmeli ve cihaz üreticisi tarafından sağlanan HDMI TV Girişini kullanmalıdır.
TV Giriş Yöneticisi aracılığıyla, harici STB TV Girişi, HDMI TV Girişi ile konuşabilir ve videoyu HDMI1'de göstermesini isteyebilir. Böylece üretici tarafından sağlanan HDMI TV Girişi videoyu işlerken STB TV Girişi TV'yi kontrol edebilir.
Resim içinde resim (PIP) örneği

Yukarıdaki şema, bir uzaktan kumanda üzerindeki düğmelerin, resim içinde resim (PIP) ekranı için belirli bir TV Girişine nasıl geçirildiğini gösterir. Bu düğme basışları, cihaz üreticisi tarafından sağlanan donanım sürücüsü tarafından yorumlanır, donanım tarama kodlarını Android anahtar kodlarına dönüştürür ve bunları KeyEvents olarak standart Android giriş hattı InputReader
ve InputDispatcher
işlevlerine iletir. Bunlar, odaktaysa TV Uygulamasındaki olayları tetikler.
Yalnızca sistem TV Girişleri, InputEvents
almaya uygundur ve yalnızca RECEIVE_INPUT_EVENT
sistem iznine sahiplerse. TV Girişi, hangi InputEvent'lerin tüketileceğini belirlemekten sorumludur ve TV Uygulamasının tüketmesi gerekmeyen tuşları kullanmasına izin vermelidir.
TV Uygulaması, hangi sistem TV Girişinin etkin olduğunu, yani kullanıcı tarafından seçildiğini bilmekten ve gelen KeyEvents
belirsizliğini ortadan kaldırmak ve bunları doğru TV Giriş Yöneticisi oturumuna yönlendirmekten, olayı ilişkili TV Girişine iletmek için dispatchInputEvent()
'i çağırmaktan sorumludur. .
MHEG-5 giriş örneği
Aşağıdaki şema, KeyEvents
Android TIF üzerinden nasıl yönlendirildiğinin daha ayrıntılı bir görünümünü gösterir.

Kullanıcıların televizyonlarında etkileşimli uygulamalara erişmesine izin vermek için Avrupa'da yaygın olan bir Kırmızı düğme uygulamasının akışını gösterir. Bu taşıma akışı üzerinden bir uygulama teslim edilebilir. Düğme tıklandığında, kullanıcıların bu yayın uygulamalarıyla etkileşime girmesini sağlar. Örneğin, ilgili web sayfalarına veya spor skorlarına erişmek için bu yayın uygulamalarını kullanabilirsiniz.
Yayın uygulamalarının TV Uygulaması ile nasıl etkileşime girdiğini öğrenmek için Yayın uygulaması bölümüne bakın.
Bu örnekte:
- TV Uygulaması odakta ve tüm anahtarları alıyor.
-
KeyEvents
(örneğin Kırmızı düğme),InputEvents.
- Sistem TV Girişi, MHEG-5 yığını ile entegredir ve
RECEIVE_INPUT_EVENT
sistem iznine sahiptir. - Aktivasyon anahtar kodunu (örn. Kırmızı düğme) aldığında, TV Girişi yayın uygulamasını etkinleştirir.
- TV girişi,
InputEvents
KeyEvents
tüketir ve yayın uygulaması odak noktasıdır ve kapatılana kadarInputEvents
işler.
Not : Üçüncü taraf TV girişleri hiçbir zaman anahtar almaz.
TV Girişi HAL
TV Girişi HAL, TV'ye özel donanıma erişmek için TV Girişlerinin geliştirilmesine yardımcı olur. Diğer Android HAL'lerinde olduğu gibi, TV Girişi HAL'i ( tv_input
) AOSP kaynak ağacında bulunur ve satıcı, uygulamasını geliştirir.
TV Uygulaması
Sistem TV Uygulaması, kullanıcıya canlı TV içeriği sunar. Android platformunun yanında olduğu gibi kullanılabilen, özelleştirilebilen, genişletilebilen veya cihaz üreticileri tarafından değiştirilebilen bir referans TV Uygulaması (Live TV) sağlanır. Kaynak kodu Android Açık Kaynak Projesi'nde mevcuttur ve bunu Referans TV uygulaması makalesinde kullanmaya başlayabilirsiniz.
Cihaz üreticileri, TV Uygulamalarını cihaz üreticisi veya ülkeye özgü özellikler uygulayacak şekilde genişletebilir, ancak bu TIF veya referans TV Uygulaması kapsamında değildir.
En azından sistem TV Uygulamasının aşağıdaki görevleri yerine getirmesi gerekir:
Kurulum ve yapılandırma
- TV Girişlerini Otomatik Algıla
- TV Girişlerinin kanal kurulumunu başlatmasına izin verin
- Ebeveyn ayarlarını kontrol et
- Kanalları düzenle
görüntüleme
- Tüm TV kanallarına erişin ve gezinin
- TV programı bilgi çubuğuna erişin
- Elektronik Programlama Kılavuzu (EPG) verilerini görüntüleyin
- Birden fazla ses ve altyazı parçasını destekleyin
- Ebeveyn denetimi PIN sorgulaması sağlayın
- TV standardı (HbbTV, vb.) için TV Girişi UI kaplamasına izin ver
- TV kanalları ve programları için arama sonuçlarını doldurun
- Uygulama bağlantı kartlarını görüntüle
- Zaman kaydırma API'lerini destekleyin
- DVR işlevselliğini yönetin ve TV kayıt API'lerini destekleyin
Bu özellik seti, platform TIF API'lerinin genişletildiği yeni Android sürümlerine paralel olarak artacaktır. CTS Verifier, uyumluluk testi kapsamı sağlar.
Üçüncü taraf TV Girişleri için destek
Android TV, üçüncü taraf TV girişleri için geliştirici API'leri sağlayarak yüklü uygulamaların yazılım kanallarını canlı TV deneyimine sunmasını sağlar. Uyumlu bir Android cihaz uygulamasını sağlamak için sistem TV Uygulamasının, üçüncü taraf TV girişlerini ve kanallarını kullanıcıya gösterme konusunda bazı sorumlulukları vardır. Referans Canlı TV uygulaması uyumlu bir uygulama sağlar; sistem TV Uygulaması değiştiriliyorsa, cihaz üreticileri, tüm Android TV cihazlarında geliştirici beklentilerini karşılamak için kendi uygulamalarının benzer uyumluluk sağladığından emin olmalıdır.
Sistem TV Uygulaması, cihazın varsayılan canlı TV hizmetinin yanında üçüncü taraf girişleri göstermelidir. Geliştirici API'lerinin vaadi, kullanıcıların standart TV deneyimlerinde kanalları (yüklendikten sonra) bulabilmeleridir.
Android CDD'nin TV Uygulaması bölümünde tanımlandığı gibi, yerleşik kanallar ve üçüncü taraf kanallar arasında görsel farklılaşmaya izin verilir.
Aşağıdaki bölümler, Canlı TV uygulamasının CDD gereksinimlerini nasıl karşıladığını gösterir.
Yeni kanal kurulumu
Yeni üçüncü taraf girişlerin/kanalların eklenmesi, kullanıcının Google Play gibi bir uygulama mağazasından TV Girişi bulması ve yüklemesiyle başlar.
Bazı üçüncü taraf TV girişleri, kanalları TvProvider veritabanına otomatik olarak ekler. Ancak çoğu, kullanıcının kanallarını kurmasını, oturum açma ayrıntılarını ve diğer eylemleri sağlamasını sağlamak için bir Kurulum etkinliği sağlayacaktır. Sistem TV Uygulamasının, kullanıcının bu Kurulum etkinliğini etkinleştirebilmesini sağlaması gerekir, bu nedenle CDD, üçüncü taraf girişlerinin ana TV Uygulamasından minimum düzeyde gezinme eylemleri olmasını gerektirir.
Referans Canlı TV uygulaması, girişlere erişmek için Kanal Kaynakları menüsünü sağlar.




Ayrıca, yeni bir TvInput yüklendikten sonra, kullanıcıyı doğrudan Kuruluma götürmek için TV Uygulaması menüsünün üst kısmında bir bildirim kartı gösterilir:

Kullanıcı bildirim yoluyla işlem yaparsa, Şekil 10'da görüldüğü gibi kaynaklarını kurmayı seçebilir.
Bu alandaki geliştirici beklentileri için TV Girişi Hizmetinizi Tanımlayın bölümüne bakın.
Kanal listesini özelleştirin
Cihaz üreticileri, belirli kanalları gizlemek ve kullanıcıların kendi EPG'lerini yönetmelerini sağlamak için bir UI sağlayabilir. Canlı TV bu tesisi içerir.


EPG
Üçüncü taraf girdi geliştiricilerinin, genel kullanım sırasında tüm uyumlu Android TV cihazlarında kullanıcıların kanallarına kolayca gidebileceğinden emin olmaları gerekir.
Üçüncü taraf girişlerinden gelen kanallar, cihazın standart canlı TV deneyimi EPG'sinin bir parçası olarak sunulmalıdır. Üçüncü taraf kanallar için görsel ayrım veya ayrı kategoriler kullanılabilir (Android CDD'sinin TV Uygulaması bölümüne bakın) — önemli olan, kullanıcıların yükledikleri kanalları bulabilmeleridir.
Arama
Üreticiler, en iyi kullanıcı deneyimini sağlamak için TV Uygulamasını global arama istekleri için arama sonuçlarını içerecek şekilde uygulamalıdır. Canlı TV, yerleşik girişlerin yanı sıra üçüncü taraf girişlerinden (platform uyumluluğu için gereklidir) sonuçlar sağlayan bir uygulama (bkz. com.android.tv.search.TvProviderSearch ) sağlar.
Zaman kaydırma
Android 6.0 ve üzeri cihazlar için TV Uygulaması, Android çerçevesi zaman kaydırma API'lerini desteklemelidir. Ek olarak, üreticilerin TV Uygulamasında, kullanıcıların oynatmayı duraklatmasına, devam etmesine, geri almasına ve hızlı ileri sarmasına olanak tanıyan oynatma kontrolleri uygulaması gerekir.
Zaman kaydırmayı destekleyen TV Girişleri için TV Uygulamasının oynatma kontrollerini görüntülemesi gerekir.

DVR
Android 7.0 ve üzeri cihazlarda TV Uygulaması, kayıtlı programları desteklemek, listelemek ve oynatmak için Android çerçevesi TV kayıt API'lerini desteklemelidir.
Bu, cihaz üreticilerinin DVR alt sistemlerini TIF'e bağlamalarına ve bir TV cihazında DVR işlevselliğini etkinleştirmek veya entegre etmek için gereken entegrasyon çabasını önemli ölçüde azaltmasına olanak tanır. Ayrıca, üçüncü tarafların bir Android TV cihazına takılabilen satış sonrası DVR sistemleri sağlamasına olanak tanır.
TV Uygulaması, canlı içeriği kaydetmenin yanı sıra kaynak çakışmasını da yönetir. Örneğin cihazda iki tuner varsa aynı anda iki program kaydedebilir. Kullanıcı üç tane kaydetmeyi isterse, TV Uygulaması çakışmayı ele almalı ve ya bir bildirim göstermeli ya da kullanıcının bu istekler için bir öncelik planlamasını talep etmelidir.
TV Uygulamaları ayrıca, bir kullanıcıya bir bölümü kaydetmeyi talep ettiğinde bir dizinin gelecekteki tüm bölümlerini kaydetmek isteyip istemediğini sormak gibi daha karmaşık bir mantık da uygulayabilir.
Android TV'de olası bir DVR uygulamasına ilişkin bir görünüm için aşağıdaki şemaya bakın.

- TV Giriş Hizmeti, TV Uygulamasının olası kaynak çakışmasını işleyebilmesi için TV Uygulamasına kaç tane tuner olduğunu söyler.
- TV Uygulaması, bir TV programını kaydetmek için kullanıcı tarafından başlatılan bir istek alır.
- TV Uygulaması, kayıt programını dahili veritabanında saklar.
- Kayıt zamanı geldiğinde, TV Uygulaması, kayıtla ilişkili kanalı ayarlamak için bir istek iletir.
- TV Giriş Hizmeti bu isteği alır, uygun kaynakların olup olmadığına göre yanıt verir ve kanalı ayarlar.
- Ardından TV Uygulaması, TV Giriş Yöneticisine kaydetmeye başlama isteğini iletir.
- TV Giriş Hizmeti bu talebi alır ve kayda başlar.
- TV Giriş Hizmeti, gerçek video verilerini, harici depolama veya bulut depolaması olabilen deposunda saklar.
- Kaydı bitirme zamanı geldiğinde, TV Uygulaması kaydı durdurma talebini TV Giriş Yöneticisine iletir.
- TV Giriş Hizmeti talebi aldığında, kaydı durdurur ve ilgili meta verilerini TV Sağlayıcısına ekler, böylece TV Uygulaması, istendiğinde kaydı kullanıcılara gösterebilir.
TV Girişi hizmetinizde Kayıt özelliklerini uygulama hakkında daha fazla bilgi için bu TV Kaydı makalesine bakın.
Yararlı kaynaklar
- Android CDD ve belgelenmiş geliştirici API'leri kesin referanslardır.
- CTS Verifier, uyumluluk test programının bir parçası olarak API'leri uygular. Bunu Canlı TV'ye karşı çalıştırmak, üçüncü taraf girdileri bağlamında EPG, Arama, Ebeveyn Denetimi ve diğer gereksinimleri görmenin yararlı bir yolu olabilir.
- Bu alandaki geliştirici beklentileri için TV Girişi Hizmetinizi Tanımlayın bölümüne bakın.
Ebeveyn Kontrolü
Ebeveyn kontrolü, bir kullanıcının istenmeyen kanalları ve programları engellemesine, ancak bir PIN kodu girerek engellemeyi atlamasına izin verir.
Ebeveyn denetimi işlevine ilişkin sorumluluk, TV Uygulaması, TV Giriş Yöneticisi hizmeti, TV Sağlayıcısı ve TV Girişi arasında paylaşılır.
Ebeveyn kontrolü zorunludur ve CTS Verifier kapsamındadır.
Bazı ülkelerde, TV Girdilerinin TVContentRating API aracılığıyla kullanabileceği derecelendirme sistemleri tanımlanmıştır. Ek olarak, TV Girişleri, 'sahte' bir derecelendirme sunan CTS Verifier testinde gösterildiği gibi kendi özel derecelendirme sistemlerini kaydedebilir. Standart bir derecelendirme sisteminin bulunduğu ülkelerde, cihaz üreticilerinin TV Giriş Çerçevesi Ebeveyn Denetimi'ni içerebilecekleri diğer mekanizmalarla birleştirmeleri önerilir.
TV Sağlayıcı
Her kanal satırında, belirli kanalların PIN kodu girmeden görüntülenmesini engellemek için kullanılan bir COLUMN_LOCKED
alanı vardır. COLUMN_CONTENT_RATING
program alanı, görüntüleme amaçlıdır ve ebeveyn kontrolünü zorlamak için kullanılmaz.
TV Giriş Yöneticisi
TV Giriş Yöneticisi, engellenen her TvContentRating
depolar ve verilen derecelendirmeye sahip içeriğin engellenmesi gerekip gerekmediğini bildirmek için isRatingBlocked()
yanıt verir.
TV Girişi
TV Girişi, görüntülenen içeriğin derecelendirmesi değiştiğinde (program veya kanal değişikliğinde) veya ebeveyn denetimi ayarları değiştiğinde ( ACTION_BLOCKED_RATINGS_CHANGED
ve ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED
üzerinde) TV Giriş Yöneticisinde isRatingBlocked()
çağırarak mevcut içeriğin engellenmesi gerekip gerekmediğini kontrol eder. . İçeriğin engellenmesi gerekiyorsa, TV Girişi sesi ve videoyu devre dışı bırakır ve TV uygulamasına notifyContentBlocked(TvContentRating)
çağırarak mevcut içeriğin engellendiğini bildirir. İçeriğin engellenmemesi gerekiyorsa, TV Girişi ses ve videoyu etkinleştirir ve notifyContentAllowed()
çağırarak TV Uygulamasına mevcut içeriğe izin verildiğini bildirir.
TV Uygulaması
Ebeveyn denetimi API'lerini onurlandırmak ve dolayısıyla uyumlu bir platform oluşturmak için sistem TV Uygulamasının, belirli uygulamalar tarafından kaydedilen özel derecelendirmeler de dahil olmak üzere, kullanıcılara ebeveyn denetimini yönetmeleri için bir yol sağlaması gerekir.
TV Uygulaması, bir TV Girişi tarafından mevcut içeriğin engellendiği bildirildiğinde veya kullanıcı engellenen bir kanalı görüntülemeye çalıştığında bir PIN kodu kullanıcı arayüzü gösterir.
TV Uygulaması, ebeveyn kontrolü ayarlarını doğrudan saklamaz. Kullanıcı ebeveyn denetimi ayarlarını değiştirdiğinde, engellenen her TvContentRating
, TV Giriş Yöneticisi tarafından saklanır ve engellenen kanallar TV Sağlayıcı tarafından saklanır.
Ebeveyn kontrolü ayarlarını değiştirmek için TV Uygulamasının android.permission.MODIFY_PARENTAL_CONTROLS
iznini beyan etmesi gerekir.
Cihaz üreticileri şunları yapmaya teşvik edilir:
- Uyumluluk gereksinimlerinin bir gösterimi için CTS Verifier ebeveyn kontrolleri testini referans Canlı TV uygulamasıyla karşılaştırın.
- Canlı TV uygulamasını kendi TV Uygulamaları için referans olarak kullanın: özellikle ContentRatingsManager ve RatingSystemsFragment kaynağına ve özel derecelendirmeleri nasıl işlediklerine bakın.
HDMI-CEC
HDMI-CEC, bir cihazın diğerini kontrol etmesine izin vererek, tek bir uzaktan kumandanın bir ev sinema sistemindeki birden fazla cihazı kontrol etmesini sağlar. Android TV tarafından kurulumu hızlandırmak ve merkezi TV Uygulaması aracılığıyla çeşitli TV Girişleri üzerinde uzaktan kontrole izin vermek için kullanılır. Örneğin, girişleri değiştirebilir, cihazları açabilir veya kapatabilir ve daha fazlasını yapabilir.
Android TIF, HDMI-CEC'yi HDMI Kontrol Hizmeti olarak uygular, böylece cihaz üreticilerinin yalnızca, daha karmaşık iş mantığını atlayarak hafif Android TV HAL ile etkileşime giren düşük seviyeli sürücüler geliştirmeleri gerekir. Android, standart bir uygulama sağlarken, parçalanmış uygulamaları ve seçici özellik desteğini azaltarak uyumluluk sorunlarını azaltmaya çalışır. HDMI Kontrol Hizmeti, giriş ve güç dahil olmak üzere mevcut Android hizmetlerini kullanır.
Bu, mevcut HDMI-CEC uygulamalarının Android TIF ile birlikte çalışacak şekilde yeniden tasarlanması gerekeceği anlamına gelir. Donanım platformunun, CEC gücünü ve diğer komutları almak için bir mikroişlemci içermesini öneririz.

- CEC veri yolu, farklı bir kaynağa geçmek için o anda aktif olan kaynaktan bir komut alır.
- Sürücü, komutu HDMI-CEC HAL'e iletir.
- HAL, tüm
ActiveSourceChangeListeners
bilgilendirir. - HDMI Kontrol Servisi,
ActiveSourceChangeListener
aracılığıyla kaynak değişikliği konusunda bilgilendirilir. - TV Giriş Yöneticisi hizmeti, TV Uygulamasının kaynağı değiştirmesi için bir amaç oluşturur.
- Ardından TV Uygulaması, geçiş yapılan TV Girişi için bir TV Girişi Yönetici Oturumu oluşturur ve bu oturumda
setMain
çağırır. - TV Giriş Yöneticisi Oturumu bu bilgiyi HDMI TV Girişine iletir.
- HDMI TV girişi, yan bant yüzeyini ayarlamayı ister.
- TV Giriş Yöneticisi Hizmeti, yüzey ayarlandığında HDMI Kontrol Hizmetine karşılık gelen bir yönlendirme kontrol komutu üretir.
TV entegrasyon yönergeleri
yayın uygulaması
Her ülkenin yayına özel gereksinimleri (MHEG, Teletext, HbbTV ve daha fazlası) olduğundan, üreticilerin yayın uygulaması için kendi çözümlerini sağlamaları beklenir, örneğin:
- MHEG: yerel yığın
- Teletekst: yerel yığın
- HbbTV: Vewd Software'den HbbTV çözümü
Android L sürümünde, Android TV, cihaz üreticilerinin bölgesel TV yığınları için sistem entegratörlerini veya Android çözümlerini kullanmasını, yüzeyi TV yazılım yığınlarına geçirmesini veya eski yığınlarla etkileşim kurmak için gerekli anahtar kodunu geçirmesini bekler.
Yayın uygulaması ve TV Uygulaması şu şekilde etkileşime girer:
- TV Uygulaması odakta ve tüm anahtarları alıyor.
- TV Uygulaması, tuşları (örn. Kırmızı düğme) TV Giriş cihazına iletir.
- TV Giriş cihazı, eski TV yığınıyla dahili olarak entegre olur.
- Bir etkinleştirme anahtar kodu (örn. Kırmızı düğme) alındığında, TV Giriş cihazı yayın uygulamalarını etkinleştirir.
- Bir yayın uygulaması, TV Uygulamasına odaklanır ve kullanıcı eylemlerini yönetir.
Sesli arama/tavsiye için yayın uygulaması, sesli arama için uygulama içi aramayı destekleyebilir.