是否可以在Android中使用write c code access rild socket

时间:2011-12-19 08:09:07

标签: android c sockets

像标题一样。我写这样的代码:

printf("create socket\r\n");

fd = socket_local_client(SOCKET_NAME_RIL,
ANDROID_SOCKET_NAMESPACE_RESERVED,
SOCK_STREAM);

if (fd < 0) {
perror ("opening radio  socket error");
exit(-1);
}



printf("fd = %d\r\n",fd);
int length = 12;
char datalength[5]={0};
datalength[0] = 0;
datalength[1] = 0;
datalength[2] = (length >>8) & 0xff;
datalength[3] = (length & 0xff);
int ret = send(fd, datalength, 4, 0);
if(ret != sizeof(int)) {
    perror ("Socket write error when sending length");
    close(fd);
    exit(-1);
}

我可以成功获得fd值,并成功发送数据。 但是从“logcat -b radio”可以看到没有任何信息可以显示。 似乎rild阻止了套接字连接。

有没有决议?感谢

1 个答案:

答案 0 :(得分:0)

rild 套接字由手机应用程序“拥有”,因此只要正在运行,您将无法连接到该套接字。您可以尝试连接到 rild-debug 套接字。