2011-08-11 13 views
0

我有一臺連接有USB串口設備的紮根Android設備。該設備顯示爲「/ dev/ttyUSB5」可以在Android上導入javax.comm嗎?想要打開串口設備

我想打開串口並從中讀取/寫入。首先...在Android內部,它甚至會允許我讀取/打開/ dev/ttyUSB5?或者在應用程序中,我將被禁止觸摸/ dev?如果我無法觸及/ dev中的任何內容,那麼這是無關緊要的。

但是,如果我可以,那麼我想知道是否可以導入javax.comm,以便我可以與串行設備進行通信。

截至目前,我可以通過產生一個本地C應用程序來打開串口,然後使用套接字讀/寫Java串口。但是,在Java中完成這一切會更好。

回答

2

在Android中,它甚至會允許我讀/打開/ dev/ttyUSB5嗎?或者在應用程序中,我將被禁止觸摸/ dev?

我不確定一個普通的SDK應用程序是否擁有此權限。如果您擁有根設備,則以root用戶身份運行的應用程序。

但是,如果我可以,那麼我想知道是否可以導入javax.comm,以便我可以與串行設備進行通信。

不直接。構建工具不希望導入java.*javax.*類。而且,我不知道javax.comm如何快速下載到本機代碼中,即使在標準Java上。

你可以試試看看Apache Harmony是否實現了javax.comm,然後看看它。如果它看起來符合您的需求,您可以複製相關類,然後將它們重構爲新的包(例如,org.gynchis.comm)。

然而,最好全面的回答,如果可能的話,是要儘量堅持the ADK and the new USB classes在API級別10加入我不是硬件的傢伙,所以我不知道,如果有什麼在那裏將滿足您的需求,或者如果您有足夠新的Android版本的設備獲得該支持。

0

是的,你可以使用/ dev/tty *來訪問你的串口。看看這個: serialport-api。我測試了它,但是當然,你需要擁有你的/ dev/tty *並設置適當的權限。這在init.rc文件中(chmod 0666/dev/ttyUSB5)。如果您在嵌入式系統中工作,則很容易修復。如果你想在市場上購買任何平板電腦,那就更加複雜了。我相信唯一的辦法就是根植它。這個軟件包的唯一缺點是它似乎使用一個不斷輪詢輸入流的線程,這使我相信它不是非常CPU /電池效率的。我正在尋找一種方法來獲得可以在接收端提供數據時喚醒我的線程的東西。

相關問題