如何连接到rild Socket

Don*_*nic 11 android ril

我正在尝试编写一个与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 );
}
Run Code Online (Sandbox Code Playgroud)

我在/ 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
Run Code Online (Sandbox Code Playgroud)

可能是拨号器应用程序已经连接并占用套接字?

BTW我最初尝试使用这些框架但是得到了一大堆关于java和第三方类未知的错误,所以我放弃了几天后就放弃了.我也是STFW和这个网站 - 围绕这个问题跳舞,但没有具体的建议.

任何帮助非常感谢.-约翰

Ces*_*ino 8

在RILD插座的java的到底是一个实例com.android.internal.telephony.RIL.java,这是由拥有com.android.phone.PhoneApp.java.PhoneApp是一款持久性应用程序,毫不奇怪,它提供了手机功能.禁用PhoneApp应该杀死rild套接字的任何java端使用.

您也可能想尝试连接到"rild-debug",这是未使用的(但可能被ril-daemon忽略).

顺便说一句 - 你可以通过logcat -b radio看到RIL层之间的通信.

如果你想出一个解决方法,请回复.