2016-09-09 11 views
19

मैं एंड्रॉइड संस्करण 4.4.4 के साथ एक प्लगपीसी (कंप्यूट स्टिक) का उपयोग कर रहा हूं, टीवी पर प्रदर्शित होने वाले नियंत्रण को नियंत्रित करने के लिए इसे टीवी के एचडीएमआई पोर्ट से कनेक्ट कर रहा हूं। मेरा ऐप बूट पर शुरू होता है, स्क्रीन पर नियंत्रण लेता है। अब मेरे ऐप के माध्यम से मैं टीवी वॉल्यूम और स्रोत स्विच (शायद) को नियंत्रित करना चाहता हूं। मैं इस संबंध में सवाल निम्नलिखित है:एंड्रॉइड और एचडीएमआई सीईसी

  1. वहाँ जावा का उपयोग कर, टीवी मात्रा को नियंत्रित, आदि संगत उन टीवी पर/बंद स्विच करने के लिए एंड्रॉयड के माध्यम से HDMI-सीईसी आदेश भेजने के लिए एक रास्ता है?

  2. एंड्रॉइड द्वारा प्रदान की गई कोई भी जावा लाइब्रेरी या अन्यथा इसके लिए उपलब्ध है?

  3. सीईसी का उपयोग कर एक साधारण जावा उदाहरण।

पी.एस - मैं (https://source.android.com/devices/tv/HDMI-CEC.html) में प्रस्तुत सिद्धांत समझते हैं, लेकिन कैसे कोड के साथ लागू करने पर जानकारी नहीं। कृपया उपर्युक्त प्रश्नों के उत्तर के साथ विशिष्ट रहें।

+2

वहां * एक * हो सकता है, लेकिन 1) आपके डिवाइस में आईआर ब्लॉस्टर होना चाहिए। और 2) पुस्तकालयों के लिए पूछना StackOverflow के लिए ऑफ-विषय है। शुभकामनाएँ! –

+2

https://source.android.com/devices/tv/HDMI-CEC.html –

+0

क्या आपके पास डिवाइस पर रूट पहुंच है? –

उत्तर

5

हां यह पूरी तरह से संभव है, हालांकि यह अविश्वसनीय रूप सेफिकल है। एचडीएमआई सीईसी बस की तरह काम करता है। आमतौर पर, दोनों दिशाओं में।

आपका प्रश्न:

  1. हां। हालांकि मैं जेएनआई का उपयोग देशी कोड तक पहुंचने के लिए करता हूं जो वास्तविक काम करता है। आप जावा में पूरी तरह से ऐसा करने में सक्षम हो सकते हैं।
  2. शायद नहीं। मुद्दा यह है कि प्रत्येक विक्रेता सीईसी सिग्नल भेजने के लिए कोड लागू करता है। सीईसी के आदेशों को छोड़कर, बिल्कुल कोई सामान्य कार्यक्षमता नहीं है। अधिकांश डिवाइसों में विशेष रूप से विक्रेता से विक्रेता तक पहुंचने वाली डिवाइस फ़ाइल संभवतः अद्वितीय होती है। इसलिए, किसी भी पुस्तकालय जो सबसे अधिक विक्रेताओं और उनके quirks की एक विस्तृत श्रृंखला का समर्थन करते हैं, और भविष्य में अगले विक्रेता परिवर्तनों के खिलाफ भविष्य का प्रमाण नहीं दिया जाएगा।
  3. दुर्भाग्य से मैं अपना कामकाजी कोड प्रदान नहीं कर सकता। मैं जिथूब पर एक आम्लोगिक स्रोत फ़ाइल के लिए नीचे एक लिंक प्रदान करता हूं जो बहुत सारे काम करता है। मेरा कोड समान दिखता है।

मेरे अपने अंक में से कुछ:

  1. सभी डिवाइस सभी आदेशों समर्थन करते हैं। बहुत कम इस्तेमाल किए गए आदेश लागू नहीं किए जाएंगे, क्योंकि इसकी लागत अधिक होती है।
  2. सीईसी के साथ बातचीत अक्सर विक्रेता निर्भर होती है। उनके पास काम करने के लिए उनकी अपनी लाइब्रेरी या डिवाइस फ़ाइल होगी।
  3. सीईसी हमेशा दोनों दिशाओं में काम नहीं करेगा, यह निर्भर करता है कि विक्रेता ने उस कार्यक्षमता को लागू किया है या नहीं। यह हमेशा लागू नहीं होता है, क्योंकि इसे करने के लिए और अधिक लागत होती है।

इसे ठीक से करने के लिए आपको उचित पैकेट बनाने के लिए जेएनआई का उपयोग करके अपने कोड को लागू करने की आवश्यकता होगी। आप कम से कम Amlogic के लिए find this useful हो सकता है।

डिवाइस एक्सेस पॉइंट जो मैं अपने डिवाइस में उपयोग करता हूं /dev/amhdmitx0 है। आप उस स्थान पर अपने अच्छी तरह से बने पैकेट भेज सकते हैं।

यहां एक उपयोगी वेबसाइट है जो आपको बता सकती है कि सीईसी कमांड कैसे बनाएं: http://www.cec-o-matic.com/

दुर्भाग्यवश, मैं जो लिखा है उससे कहीं ज्यादा साझा नहीं कर सकता। विभिन्न कानूनी कारणों से।

सबसे अच्छी बात यह है कि आप जिस विक्रेता को प्रोग्रामिंग कर रहे हैं उससे मदद लेना है। यदि आप एक विशिष्ट मंच के लिए कोडिंग कर रहे हैं। वे आपकी मदद करने के लिए तैयार हो सकते हैं।

+0

हम सीईसी-कमांड को सीईसी सक्षम सैमसंग टीवी को नेक्सस प्लेबैक क्लाइंट से भेजने पर फंस गए हैं, लेकिन सीईसी कमांड भेजने के लिए हमें बाइट [] जानकारी, स्रोत पता और गंतव्य पता चाहिए। कृपया सहायता कीजिए –

संबंधित मुद्दे