android - 是否可以在Android中使用编写c代码访问rild套接字

标签 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已经阻止了socket连接。

有什么解决办法吗?谢谢

最佳答案

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

关于android - 是否可以在Android中使用编写c代码访问rild套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8558604/

相关文章:

java - Android ActionBarSherlock 选项卡 : Fragments View

java - 错误 : In project 'app' a resolved Google Play services library dependency depends on another at an exact version while iintegrating onesignal

安卓数据库锁定

c - 如何在Linux源码中找到PageDirty函数或宏定义?

java - View 的 getWidth() 和 getHeight() 返回 0

c - 函数调用错误

c - 如何在 ANSI C 中定义 NaN 值?

c - 错误 :Socket Select() function always return zero. 。?

java - 如何使用套接字 channel 通过网络发送图像文件

c++ - Google Chrome浏览器在访问网站时发送第二个长度为0的请求吗?