是的,這是完全可以做到的,然而它是難以置信的善變。 HDMI CEC像公共汽車一樣工作。通常,在兩個方向。
您的問題:
- 是。儘管我使用JNI來訪問執行實際工作的本地代碼。您可能可能能夠純粹使用Java。
- 可能不是。問題是每個供應商都實施代碼來發送CEC信號。除了CEC命令本身之外,根本沒有共同的功能。訪問的設備文件在大多數設備中可能都是獨一無二的,特別是從供應商到供應商。因此,任何創建的圖書館都支持廣泛的不同供應商和他們的怪癖,而且它將不會面臨下一個供應商變更的未來挑戰。
- 不幸的是我無法提供我的工作代碼。我在github上提供了一個Amlogic源文件的鏈接,它可以完成許多工作。我的代碼看起來類似。
我自己的一些點:
- 並非所有設備都支持所有命令。許多較少使用的命令將不會被執行,因爲它花費更多。
- 與CEC的交互通常取決於供應商。他們可能會有自己的庫或設備文件來處理。
- CEC不會總是在兩個方向上工作,它取決於供應商是否實現了該功能。它並不總是得到實施,因爲它的成本更高。
要正確地做到這一點,您可能需要使用JNI來實現您的代碼以形成正確的數據包。至少對於Amlogic,您可能需要find this useful。
我在我的設備中使用的設備接入點是/dev/amhdmitx0
。您可以將您的格式良好的數據包發送到該位置。
這是一個有用的網站,可以告訴你如何形成CEC命令:http://www.cec-o-matic.com/。
不幸的是,我不能分享比我寫的更多的東西。出於各種法律原因。
您可以做的最好的事情是從您正在編程的供應商那裏尋求幫助。如果您正在爲特定平臺編碼。他們可能願意幫助你。
有*可能*的方式,但1)您的設備必須有一個紅外發射。和2)詢問圖書館對於StackOverflow是無關緊要的。祝你好運! –
https://source.android.com/devices/tv/HDMI-CEC.html –
你有問題的設備的根訪問? –