我正在嘗試編寫一個應用程序來與rild交談。是的,我知道這在政治上是不正確的,但它是一個嵌入式工業遙測應用程序,所以我不關心用戶體驗,便攜性和所有這些東西。如何連接到rild套接字
問題是,當我嘗試連接時,出現java.io「Permission denied」異常。有誰能夠幫助我?
手機(Nexus One)植根於Cyanogenmod 7,該應用程序以超級用戶的身份使用Market中的「SuperUser」應用程序運行。
我的代碼(略):
try {
mSocket = new LocalSocket();
mSockAddr = new LocalSocketAddress("rild", LocalSocketAddress.Namespace.RESERVED);
mSocket.connect(mSockAddr);
}
catch(Exception e) {
dbg.p("connect failed: "+e);
}
我看到RILD(和RILD調試)插座中的/ dev /插座。
srw-rw---- 1 root radio 0 Feb 13 19:14 rild
srw-rw---- 1 radio system 0 Feb 13 19:14 rild-debug
難道說撥號器應用程序已連接並佔用插槽嗎?
順便說一句我最初嘗試使用框架,但得到了大部分關於java和第三方類未知的錯誤的humongus,所以我放棄了幾天的頭髮拉。我也有STFW和這個網站 - 很多人圍繞這個問題跳舞,但沒有具體的建議。
任何幫助非常感謝。 -John
謝謝,我會試試看。順便說一句 - 我能通過「chmod 666/dev/socket/rild」獲得「權限被拒絕」問題。我可以在連接上沒有異常,但在發送命令時沒有迴應。我不確定我是否發送了有效的命令(反向設計它)。我發送:int DIAL(10),int seq ++,String phonenum(「7035551234」),int clirmode(0),int no-uus(0),int null-uus(0)。我會報告進展情況,以便對其他人有幫助。 – DontPanic 2012-02-17 15:56:54
最好的辦法是查看RIL.java的源代碼,它定義了從java API到穿過套接字的消息的映射。 – 2012-02-17 19:06:21
是的,我嘗試過,但事實證明太困難了,因爲它是如此的分層和抽象。但是我發現了_real_解決方案:我發現我可以連接到「rild-debug」套接字,並且可以做我所需要的。謝謝,約翰 – DontPanic 2012-02-21 18:59:45