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, ses ve video oynatma gibi Uzaktan Kumandalı Geçiş ve Sistem Ses Kontrolü, ancak bunlar arasında en popüler One Touch Play. 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, geçerli etkin kaynak iken uyku moduna geçerse kapanmaya çalışır bağlı TV'de paylaşın.
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 olduğunu iddia eden iki ürünün tamamen uyumlu olduğunu varsayar.
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.
HdmiControlService
ürününü Android kapsamında sunarak
ekosistemde Android'in şunları sağlamayı umduğu:
- 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.
- Şu ana kadar çok sayıda HDMI-CEC cihazla karşılaştırıldığında iyi test edilmiş bir hizmet emin olabilirsiniz. Android, uyumlulukla ilgili titiz araştırmalar yapıyor sorunları tespit etme ve cihazdan faydalı tavsiyeler toplama yeni beceriler edindiniz. 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
, sistemin geri kalanıyla bağlantılı. Örneğin:
TV Giriş Çerçevesi (TIF), Ses hizmeti ve Güç hizmeti
standartta belirlenen
çeşitli özellikleri içerir.
Ö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.
Uygulama
HDMI kontrol hizmetinin ayrıntılı görünümü için aşağıdaki şemaya bakın.
Doğru bir Android HDMI-CEC uygulaması için gereken temel bileşenler:
-
HdmiControlManager
yönetici sınıfı, ayrıcalıklı uygulamalar sağlıyor bunu API ile yapabilirsiniz. TV Giriş Yöneticisi hizmeti ve Ses hizmeti gibi sistem hizmetleri kullanabiliyor. - 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 edebilir. HAL tanımı, cihaz üreticileri tarafından kullanılabilir başka bir kod snippet'i kullanabilirsiniz.
Not: Cihaz üreticileri
device.mk
bölgesindeki PRODUCT_COPY_FILES
içine gelecek satır.
PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.hdmi.cec.xml:system/etc/permissions/android.hardware.hdmi.cec.xml
Cihazınızın bir HDMI çıkış cihazı mı yoksa bir HDMI kaynak cihazı mı olduğuna bağlı olarak,
cihaz üreticilerinin ro.hdmi.device_type
ayarını yapması gerekir
HdmiControlService
için device.mk
düzgün çalışır.
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 tescilli CEC denetleyicisi bir arada bulunamaz
HdmiControlService
ile birlikte. Devre dışı bırakılmalı veya kaldırılmalıdır. Genel bu gereklilikler, üreticiye özgü gereksinimlerin komutlarının ikisine katlanır. Üreticiye özel komut işleyici, değiştirerek/değiştirerek hizmete sunabilirsiniz. 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
Sadece sistem bileşenlerini veya/system/priv-app
hizmete 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
cihazının
HDMI-CEC komutlarını göndermek/almak, gerekli ayarları yapılandırmak ve
ve (isteğe bağlı olarak) satın alma işlemi gerçekleştiren alt platformdaki
Android sistemi bekleme modundayken CEC kontrolünü devralacaktır.
Sürüm | Özellikler | HAL dosyaları |
---|---|---|
1,0 | HAL verilerini (adresler, özellikler) yapılandırın. HDMI-CEC komutları gönderin. 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 sağlar. uzaktan kumanda doğrudan geçişi ve daha kapsamlı sertifika testinde iyileştirmeler yapıldı. Genellikle, HDMI-CEC 2.0'ın diğer cihazlarla 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.