如标题所示。我这样写代码:
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已经阻止了socket连接。
有什么解决办法吗?谢谢
最佳答案
rild 套接字由“电话”应用程序“拥有”,因此只要该应用程序正在运行,您就无法连接到它。您可以尝试连接到 rild-debug 套接字。
关于android - 是否可以在Android中使用编写c代码访问rild套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8558604/