HDMI-CEC kontrol hizmeti

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.

Android 5.0'dan önce ve sonra HDMI-CEC'nin nasıl uygulandığını gösteren şema

Ş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.

HDMI kontrol hizmetinin ayrıntılarını gösteren resim

Şekil 2. HDMI Kontrol Hizmeti ayrıntıları

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.