我正在尝试编写一个与rild通信的应用程序。是的,我知道这不是政治正确的,但它是一个嵌入式工业遥测应用程序,所以我不关心用户体验、可移植性等等。
问题在于,当我尝试连接时,我会得到一个java.io "Permission denied"异常。有人可以帮我吗?
手机(Nexus One)已经使用Cyanogenmod 7获得了root权限,并且该应用程序正在使用Market中的“SuperUser”应用作为超级用户运行。
我的代码(缩写):
try {
mSocket = new LocalSocket();
mSockAddr = new LocalSocketAddress( "rild", LocalSocketAddress.Namespace.RESERVED );
mSocket.connect( mSockAddr );
}
catch( Exception e ) {
dbg.p( "connect failed: "+e );
}
我在/dev/socket目录下看到了rild(和rild-debug)的套接字。
srw-rw---- 1 root radio 0 Feb 13 19:14 rild
srw-rw---- 1 radio system 0 Feb 13 19:14 rild-debug
可能是拨号器应用程序已经连接并独占了该套接字吗?
顺便说一下,我最初尝试使用框架,但出现了大量关于Java和第三方类未知的错误,所以在苦苦挣扎了数天后放弃了。我也已经搜索过这个网站,但是只找到了有关此问题的许多泛泛而谈的信息,没有具体的建议。
非常感谢任何帮助。 -John