我正在尝试编写一个应用程序来与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