HDMI-CEC Kontrol Hizmeti

Yüksek Çözünürlüklü Multimedya Arayüzü Tüketici Elektroniği Kontrolü (HDMI-CEC) standardı, çoklu ortam tüketici ürünlerinin birbirleriyle iletişim kurmasına ve bilgi alışverişinde bulunmasına olanak tanır. HDMI-CEC, Uzaktan Kumanda Geçişi ve Sistem Ses Kontrolü gibi birçok özelliği destekler, ancak en popüler olanlardan biri Tek Dokunuşla Oynatmadır. One Touch Play, bir medya kaynağı cihazının TV'yi açmasına ve giriş bağlantı noktasını otomatik olarak değiştirmesine olanak tanır, böylece Chromecast'inizden Blu-ray oynatıcıya geçmek için TV uzaktan kumandasını aramanız gerekmez.

Android 12 ile, HDMI bağlantılı ekranın güç kontrolü, dahili ekranın güç kontrolü ile aynı hizadadır. Bir HDMI oynatma cihazı uyandığında, bağlı TV'yi uyandırmaya ve HDMI CEC Tek Dokunuşla Oynatma yoluyla mevcut aktif kaynak olmaya çalışır. Cihaz mevcut aktif kaynak iken uyku moduna geçerse, bağlı TV'yi kapatmaya çalışır.

HDMI-CEC'yi desteklemek genellikle isteğe bağlıdır. Ancak çoğu üretici, cihazlarının diğer şirketlerin cihazlarıyla çalışması için HDMI-CEC'yi benimsemiştir. Her üretici, HDMI-CEC standardını farklı şekillerde uygular, bu nedenle cihazlar her zaman birbirini anlamaz ve desteklenen özellikler cihazlar arasında değişiklik gösterir. Bu farklılık nedeniyle tüketiciler, CEC desteğini talep eden iki ürünün tamamen uyumlu olduğunu güvenle varsayamazlar.

HDMI-CEC 2.0 desteği, hem gönderen hem de alan cihaz standardın bu sürümünü destekliyorsa, HDMI cihazları arasındaki uyumluluğu geliştirmeye yardımcı olur.

Çözüm

Android TV Giriş Çerçevesinin (TIF) piyasaya sürülmesiyle HDMI-CEC, bağlı tüm cihazları bir araya getirir ve uyumluluk sorunlarını en aza indirir. Android adında bir sistem hizmeti yarattı HdmiControlService bu ağrı noktaları hafifletmek için.

Sunarak HdmiControlService Android ekosisteminin bir parçası olarak, Android sunmak için umut:

  • Cihaz uyumsuzluğunu azaltacak, tüm üreticiler için standart bir HDMI-CEC uygulaması. Önceden, üreticilerin kendi HDMI-CEC uygulamalarını geliştirmeleri veya üçüncü taraf çözümleri kullanmaları gerekiyordu.
  • Halihazırda piyasada bulunan çok sayıda HDMI-CEC cihazına karşı iyi test edilmiş bir hizmet. Android, ürünler arasında bulunan uyumluluk sorunları hakkında titiz bir araştırma yürütüyor ve teknolojide deneyimli cihaz uygulayıcılarından faydalı tavsiyeler alıyor. CEC hizmeti, insanların halihazırda kullanmakta olduğu ürünlerle çalışabilmesi için standart ve bu standartta yapılan değişiklikler arasında sağlıklı bir denge sağlamak üzere tasarlanmıştır.

Genel tasarım

HdmiControlService çeşitli özellikleri standart belirliyorsa uygulamaya TV Giriş Çerçevesi (TIF) gibi sistemin geri kalanı, Ses hizmeti ve Güç hizmeti ile bağlantılıdır.

Özel bir CEC denetleyicisinden daha basit HDMI-CEC donanım soyutlama katmanının (HAL) bir uygulamasına geçişin bir tasviri için aşağıdaki şemaya bakın.

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

Şekil 1. HDMI Kontrolü Servisi yedek

uygulama

HDMI kontrol hizmetinin ayrıntılı bir görünümü için aşağıdaki şemaya bakın.

HDMI Kontrolü hizmet ayrıntılarının nasıl yapıldığını gösteren resim

2. HDMI Kontrolü Servisi ayrıntıları Şekil

Uygun bir Android HDMI-CEC uygulamasının temel bileşenleri şunlardır:

  • Bir yönetici sınıfı HdmiControlManager API ile ayrıcalıklı uygulama sunar. TV Giriş Yöneticisi hizmeti ve Ses hizmeti gibi sistem hizmetleri, hizmeti doğrudan kullanabilir.
  • Hizmet, birden fazla türde mantıksal aygıtın barındırılmasına izin verecek şekilde tasarlanmıştır.
  • HDMI-CEC, cihazlar arasındaki protokol farklılıklarının ve sinyal mekanizmalarının işlenmesini basitleştirmek için bir donanım soyutlama katmanı (HAL) aracılığıyla donanıma bağlanır. HAL tanımı, cihaz üreticilerinin HAL katmanını uygulamak için kullanmaları için mevcuttur.

Not: Cihaz üreticileri içine aşağıdaki satırı eklemek gerekir PRODUCT_COPY_FILES içinde device.mk .

PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.hdmi.cec.xml:system/etc/permissions/android.hardware.hdmi.cec.xml

Cihazınız HDMI lavabo cihazı veya bir HDMI kaynak cihaz olmasına bağlı olarak, cihaz üreticileri seti gerekir ro.hdmi.device_type içinde device.mk için HdmiControlService düzgün çalışması için.

Üst (OTT) veya Set üstü kutu (STB) cihazları gibi HDMI kaynak cihazları için şunları ayarlayın:

PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=4

Panel TV'ler gibi HDMI lavabo cihazları için şunları ayarlayın:

PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=0
  • Bir cihaz üreticisi tarafından sağlanan özel CEC kontrol ile birlikte çalışamaz HdmiControlService . Devre dışı bırakılmalı veya kaldırılmalıdır. Bunun için ortak gereksinimler, üreticiye özel komutları işleme ihtiyacından gelir. Üreticiye özel komut işleyici, genişletilerek/değiştirilerek hizmete dahil edilmelidir. Bu iş cihaz üreticisine bırakılmıştır ve Android tarafından belirtilmemiştir. Hizmette üreticiye özel komutlar için yapılan herhangi bir değişikliğin standart komutların işlenme şeklini etkilememesi gerektiğini veya cihazın Android uyumlu olmayacağını unutmayın.
  • HDMI-CEC hizmetine erişme koruma seviyesi ile korunuyor SignatureOrSystem . Sadece sistem bileşenleri veya uygulamalar yerleştirilen /system/priv-app hizmetine erişebilir. Bu, hizmeti kötü niyetli uygulamalar tarafından kötüye kullanımdan korumak içindir.

Android destekler tip TV/Display(0) , Playback device(4) aktif kaynak ve olmaya One Touch Playkomutunu verebilir Audio System (5) kolları sistem ses modu ve ARC. Diğer cihaz türleri (Tuner ve Kaydedici) şu anda desteklenmemektedir.

HDMI-CEC HAL

HDMI-CEC HAL API sağlayan HdmiControlService gönderme için donanım kaynağının yapmak kullanımını / HDMI-CEC komutları yapılandırmak gerekli ayarları almak, ve (isteğe bağlı) Android ise MSK kontrolünü devralacak yatan platformda mikroişlemci ile iletişim sistem bekleme modunda.

Sürüm Özellikleri HAL dosyaları
1.0 HAL verilerini (adresler, özellikler) yapılandırın. HDMI-CEC komutları gönderin. HDMI-CEC komutlarını ve hotplug olaylarını almak için geri aramayı 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 yapmak

Cihazların HDMI-CEC uygulamaları test edilmiş ve uygun CTS testi ile doğrulanır HDMI-CEC CTS belgeleri .

HDMI-CEC 2.0

Android kaynak (oynatma) ve alıcı (TV paneli) cihazları HDMI-CEC 2.0'ı destekler. HDMI-CEC 2.0, HDMI cihazları arasında daha iyi birlikte çalışabilirlik, Uzaktan Kontrol Geçişinde 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ğinin yanı sıra daha hızlı etkileşimlerle sonuçlanır.

Bir cihazın HDMI-CEC 2.0'ı desteklemesi için, cihaz ve kullanıcı yapılandırması HDMI-CEC 2.0 kullanacak şekilde ayarlanmalıdır. HAL uygulanması da telefonla aranmasıyla HDMI-CEC 2.0 desteğini bildirmek zorundadır IHdmiCec#getCecVersion .

MSK Yapılandırması

HDMI-CEC davranışı ve (çalışma zamanı (RROs kullanılarak OEM) tarafından her iki yapı anda yapılandırılabilir HdmiControlManager @SystemApi).

HDMI-CEC ayarlarına örnekler:

Ayar Seçenek
HDMI-CEC'nin etkin veya devre dışı olup olmadığı. Etkinleştirilmiş
Engelli
Bir oynatma cihazı tarafından gönderilen HDMI-CEC güç kontrol mesajlarının kapsamı. Yalnızca TV'ye
TV ve Ses Sistemine
Yayın
Hiçbiri

Her ayar için mevcut ve izin verilen seçenekler, çalışma zamanında uygulamalar tarafından sorgulanabilir.