Yüksek Çözünürlüklü Multimedya Arayüzü Tüketici Elektroniği Denetimi (HDMI-CEC) standardı, birden çok medya tüketici ürünlerinin iletişim kurmasını ve bilgi alışverişinde bulunmaktır. HDMI-CEC, Uzaktan Kumanda Geçişi ve Sistem Ses Kontrolü gibi birçok özelliği destekler. Ancak en popüler özelliklerden biri One Touch Play'dir. One Touch Play, bir medya kaynağı cihazının TV'yi açmasına ve giriş bağlantı noktasını otomatik olarak değiştirir. Böylece, TV'yi aramak zorunda kalmazsınız. Chromecast\'inizden Blu-ray oynatıcıya geçmek için uzaktan kumandanızı kullanın.
Android 12'de HDMI bağlantılı ekranın güç kontrolü dahili ekranın güç kontrolü. HDMI oynatma cihazı uyandığında TV'yi uyandırmak ve HDMI CEC One Touch Play ile geçerli etkin kaynak olmak için kullanabilirsiniz. Cihaz, etkin kaynakken uykuya geçerse bağlı TV'yi kapatmaya çalışır.
HDMI-CEC'nin desteklenmesi genellikle isteğe bağlıdır. Ancak çoğu üretici HDMI-CEC'yi bu sayede cihazları diğer şirketlerin cihazlarıyla çalışacak. Her üretici HDMI-CEC'yi uygular Bu nedenle cihazlar her zaman birbirlerini anlamaz ve cihazlar arasında farklılık gösterir. Bu farklılık nedeniyle tüketiciler, CEC desteği sunduğu iddia edilen iki ürünün tamamen uyumlu olduğunu varsaymalıyız.
HDMI-CEC 2.0 desteği, hem gönderme ve alma işlemleri, standardın bu sürümünü destekler.
Çözüm
Android TV Giriş Çerçevesi (TIF) kullanıma sunulduğunda HDMI-CEC
tüm bağlı cihazları bir araya getirir ve uyumluluk sorunlarını en aza indirir.
Android, şunları yapmak için HdmiControlService
adlı bir sistem hizmeti oluşturdu:
bu sorunları hafifletmenize yardımcı olur.
Android, Android ekosisteminin bir parçası olarak HdmiControlService
'ü sunarak şunları sağlamayı amaçlar:
- Tüm üreticiler için standart bir HDMI-CEC uygulaması. cihaz uyumsuzluğunu azaltır. Önceden, üreticiler kendi cihazlarını kendi HDMI-CEC uygulamalarını inceleyebilir veya üçüncü taraf çözümleri kullanabilirsiniz.
- Piyasadaki çok sayıda HDMI-CEC cihazla iyice test edilmiş bir hizmet. Android, ürünlerde bulunan uyumluluk sorunlarıyla ilgili titiz araştırmalar yürütüyor ve teknoloji konusunda deneyimli cihaz uygulayıcılarından faydalı tavsiyeler alıyor. CEC hizmeti, değeri yüksek yapılan değişiklikler arasında sağlıklı bir denge kurmak için halihazırda kullandığı ürünlerle uyumlu olmasını sağlıyor.
Genel tasarım
HdmiControlService
, standardın belirttiği çeşitli özellikleri uygulamak için TV Giriş Çerçevesi (TIF), Ses hizmeti ve Güç hizmeti gibi sistemin geri kalanıyla bağlantılıdır.
Özel bir CEC'den geçişin tasviri için aşağıdaki diyagrama bakın daha basit HDMI-CEC donanım soyutlaması uygulamasına katmanını (HAL) tıklayın.

Şekil 1. HDMI Kontrol Hizmeti değiştirme
Uygulama
HDMI kontrol hizmetinin ayrıntılı görünümü için aşağıdaki şemaya bakın.

Şekil 2. HDMI Kontrol Hizmeti ayrıntıları
Doğru bir Android HDMI-CEC uygulaması için gereken temel bileşenler:
- Yönetici sınıfı
HdmiControlManager
, ayrıcalıklı uygulamalara API'yi sağlar. TV girişi yöneticisi hizmeti ve ses hizmeti gibi sistem hizmetleri bu hizmeti doğrudan kullanabilir. - Hizmet, birden fazla mantıksal türün barındırılmasına olanak tanır.
- HDMI-CEC, donanıma bir donanım soyutlama katmanı yoluyla bağlanır (HAL) protokolü ve sinyal mekanizmaları arasındaki farklılıkların işlenmesini basitleştirir kontrol edebilirsiniz. HAL tanımı, cihaz üreticileri tarafından kullanılabilir başka bir kod snippet'i kullanabilirsiniz.
Not: Cihaz üreticileri, aşağıdaki satırı device.mk
'daki PRODUCT_COPY_FILES
içine eklemelidir.
PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.hdmi.cec.xml:system/etc/permissions/android.hardware.hdmi.cec.xml
Cihazınızın HDMI alıcı cihaz mı yoksa HDMI kaynak cihaz mı olduğuna bağlı olarak, HdmiControlService
'nin düzgün çalışması için cihaz üreticilerinin device.mk
'te ro.hdmi.device_type
ayarını yapması gerekir.
Baypas (OTT) veya Set Üstü Kutu (STB) gibi HDMI kaynaklı cihazlar için şunları ayarlayın:
PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=4
Panel TV gibi HDMI çıkışlı cihazlar için şu ayarları yapın:
PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=0
- Cihaz üreticisi tarafından sağlanan özel CEC denetleyici,
HdmiControlService
ile birlikte kullanılamaz. Devre dışı bırakılmış veya kaldırılmış olmalıdır. Genel bu gereklilikler, üreticiye özgü gereksinimlerin komutlarının ikisine katlanır. Üreticiye özel komut işleyici, genişletilerek/değiştirilerek hizmete dahil edilmelidir. Bu çalışma cihaza bırakılır Android tarafından belirtilmemiş. Şurada yapılan herhangi bir değişikliğin hizmete özel komutlar, komut dosyasının çalışmasını engellememelidir. emin olabilirsiniz. Aksi takdirde cihaz Android ile uyumlu olmaz. - HDMI-CEC hizmetine erişim, koruma seviyesiyle korunuyor
SignatureOrSystem
Hizmete yalnızca sistem bileşenleri veya/system/priv-app
içine yerleştirilen uygulamalar erişebilir. Bu, kötü amaçlı uygulamaların kötüye kullanımına karşı hizmet.
Android, etkin olmak için One Touch Play komutunu çalıştırabilen TV/Display(0)
(Playback
device(4)
) türünü destekler
kaynağı ve sistem ses modu ile ARC'yi işleyen Audio System (5)
.
Diğer cihaz türleri (Tuner ve Kaydedici) şu anda desteklenmemektedir.
HDMI-CEC HAL
HDMI-CEC HAL API, HdmiControlService
'ün HDMI-CEC komutları göndermek/almak, gerekli ayarları yapılandırmak ve (isteğe bağlı olarak) Android sistemi bekleme modundayken CEC kontrolünü devralacak temel platformdaki mikroişlemciyle iletişim kurmak için donanım kaynağından yararlanmasına olanak tanır.
Sürüm | Özellikler | HAL dosyaları |
---|---|---|
1,0 | HAL verilerini (adresler, özellikler) yapılandırın. HDMI-CEC komutları gönderme. HDMI-CEC komutlarını ve hotspot etkinliklerini almak için geri çağırmayı kaydedin. | IHdmiCec.hal IHdmiCecCallback.hal |
1,1 | HDMI-CEC 2.0 türlerini tanıtın | @1.1::IHdmiCec.hal @1.1::IHdmiCecCallback.hal |
Test
Cihazların HDMI-CEC uygulamaları, HDMI-CEC CTS dokümanlarına göz atın.
HDMI-CEC 2.0
Android kaynak (oynatma) ve havuz (TV paneli) cihazları HDMI-CEC 2.0'ı destekler. HDMI-CEC 2.0, HDMI cihazları arasında daha iyi birlikte çalışabilirlik, uzaktan kumanda aktarımında iyileştirmeler ve daha kapsamlı sertifika testleri sunar. Genel olarak, diğer cihazlarla HDMI-CEC 2.0 etkileşimleri daha verimlidir. Bu da daha az HDMI-CEC trafiği ve daha hızlı etkileşimler sağlar.
Bir cihazın HDMI-CEC 2.0'ı desteklemesi için cihaz ve kullanıcı yapılandırmasının şu şekilde olması gerekir:
HDMI-CEC 2.0 kullanacak şekilde ayarlandı. HAL uygulaması, HDMI-CEC 2.0 desteğini de bildirmelidir.
IHdmiCec#getCecVersion
için arama sayısı.
CEC yapılandırması
HDMI-CEC davranışı hem derleme zamanında (RRO kullanan OEM'ler tarafından) hem de çalışma zamanında yapılandırılabilir
(HdmiControlManager
@SystemApi tarafından).
HDMI-CEC ayarlarına örnekler:
Ayar | Option |
---|---|
HDMI-CEC'nin etkin veya devre dışı olup olmadığı. | Etkin Devre dışı |
Bir oynatma cihazı tarafından gönderilen HDMI-CEC güç kontrolü mesajlarının kapsamı. | Yalnızca TV'ye TV ve ses sistemine Yayınla Hiç aktarılmadı |
Şu anda kullanılabilir olan ve izin verilen her ayar için çalışma zamanında uygulamalar tarafından sorgulanabilir.