2017-08-11 7 views
6

मेरा लक्ष्य एचडीएमआई सीईसी कमांड को एक मानक (यानी गैर-सिस्टम) ऐप से पल्स-आठ के यूएसबी डोंगल से लैस एंड्रॉइड बॉक्स पर चलाना है।एंड्रॉइड ऐप में libCEC + यूएसबी डोंगल का उपयोग करें

these instructions के बाद मैं सफलतापूर्वक Android के लिए libcec संकलन और बॉक्स पर रूट के रूप में निष्पादित, इस आदेश के साथ करने में कामयाब रहे:

echo <my-cec-command> | cec-client -s /dev/ttyACM0 

जहां /dev/ttyACM0 उपकरण जब डोंगल प्लग प्रणाली द्वारा बनाई गई फ़ाइल है।

हालांकि इस फ़ाइल की अनुमतियां गैर-रूट उपयोगकर्ता द्वारा आदेश को निष्पादित करने से रोकती हैं (इसलिए इसे मेरे एंड्रॉइड ऐप से निष्पादित नहीं किया जा सकता है)।

दूसरी ओर एप्लिकेशन वास्तव में एंड्रॉयड एसडीके के USB Host API के माध्यम से USB डोंगल का उपयोग कर सकते (उपयोगकर्ता प्रदान की अनुमति देता है) और यहां तक ​​कि UsbSerial पुस्तकालय के साथ एक यूएसबी सीरियल नियंत्रक में लपेटा जा सकता है।

लेकिन मुझे एंड्रॉइड के यूएसबी होस्ट एपीआई और libcec/cec-client द्वारा प्रदान किए गए कनेक्शन के बीच पुल बनाने का कोई तरीका नहीं दिख रहा है। क्या आपके पास कोई विचार या सुझाव है?

उत्तर

0

अब तक का सबसे अच्छा समाधान है जो USB Host API + UsbSerial library का उपयोग शुद्ध जावा कोड (कोई एम्बेडेड libCEC) के साथ एडाप्टर के सीरियल पोर्ट पर सीईसी पैकेट पढ़ने/लिखने के लिए नहीं है।

मैंने libCEC पर कुछ रेट्रो-इंजीनियरिंग किया है ताकि & पर टीवी स्विचिंग जैसे सक्रिय संचालन के लिए उचित आदेशों को सक्रिय किया जा सके और सक्रिय स्रोत सेट किया जा सके।

और मैं अंत में निम्नलिखित UsbCecConnection जावा वर्ग के साथ आया था: https://gist.github.com/sdabet/ac4d7711d1a529806cb7b695530b1fac

+0

मैं इस दृष्टिकोण की कोशिश की, लेकिन यह कोई डिवाइस नहीं देता है जब मैं() usbManager.getDeviceList के माध्यम से सभी USB उपकरणों को सूचीबद्ध करने के लिए प्रयास करें। कोई विचार क्यों? मैंने अपने दृष्टिकोण के साथ एक पोस्ट बनाया है लेकिन अभी भी कोई सफलता नहीं है (https://stackoverflow.com/questions/45639210/use-libcec-usb-dongle-in-android-app)। किसी भी मार्गदर्शन के लिए अग्रिम धन्यवाद। –

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