不知道RIL中的SMS是怎么存储的,它又是怎么跟底层的RIL串口沟通的。
RIL串口收到的短信消息是放在了什么地方?是不是Content Providers?那这个写到Content Providers流程是怎么样的?

解决方案 »

  1.   

    RIL中有RILD这个守护进程(负责控制RIL串口),还在telephony的RIL.java里面封了一层。RIL.java才是真正的SOCKET通信的实现层?在守护进程(纯C实现)应该没办法实现SOCKET通信的。我们是不是也还得封一层类似于RIL.java才可以实现上层AP跟守护进程通过SOCKET通信?
      

  2.   

    android使用socket使底层和framework通信http://fanwei51880.blog.163.com/blog/static/32406740201011150240981/
      

  3.   

    不知道RIL里面的什么联系人/短信什么的Content Providers在那一层实现的?!
      

  4.   


    其实在HARDWARE/RIL/LIBRIL/RIL.CPP进行了下面的操作
    s_fdListen = android_get_control_socket(“server”); 
    ret = listen(s_fdListen, n); 
    s_fdCommand = accept(s_fdListen, (sockaddr *) &peeraddr, &socklen);
      

  5.   

    不知道前台JAVA程序怎么通过SOCKET跟守护进程通信,试了老是出问题。
    W/System.err(  410): java.io.IOException: No such file or directory
    W/System.err(  410):  at android.net.LocalSocketImpl.connectLocal(Native Method)
    W/System.err(  410):  at android.net.LocalSocketImpl.connect(LocalSocketImpl.java:238)
    W/System.err(  410):  at android.net.LocalSocket.connect(LocalSocket.java:95)
    W/System.err(  410):  at com.example.MAP100SerialClient.MAP100SerialClient.onClick(MAP100SerialClient.java:132)
    W/System.err(  410):  at android.view.View.performClick(View.java:2344)
    W/System.err(  410):  at android.view.View.onTouchEvent(View.java:4133)
    W/System.err(  410):  at android.widget.TextView.onTouchEvent(TextView.java:6510)
    W/System.err(  410):  at android.view.View.dispatchTouchEvent(View.java:3672)
    W/System.err(  410):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
    W/System.err(  410):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
    W/System.err(  410):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
    W/System.err(  410):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
    W/System.err(  410):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1712)
    W/System.err(  410):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1202)
    W/System.err(  410):  at android.app.Activity.dispatchTouchEvent(Activity.java:1987)
    W/System.err(  410):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1696)
    W/System.err(  410):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1658)
    W/System.err(  410):  at android.os.Handler.dispatchMessage(Handler.java:99)
    W/System.err(  410):  at android.os.Looper.loop(Looper.java:123)
    W/System.err(  410):  at android.app.ActivityThread.main(ActivityThread.java:4203)
    W/System.err(  410):  at java.lang.reflect.Method.invokeNative(Native Method)
    W/System.err(  410):  at java.lang.reflect.Method.invoke(Method.java:521)
    W/System.err(  410):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
    W/System.err(  410):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
    W/System.err(  410):  at dalvik.system.NativeStart.main(Native Method)
      

  6.   

    daemon程序,还不算是android的一部分,算作是linux的吧你这样做应该是可以的:Android service <----socket---> daemonandroid service中使用content provider就可以了。
      

  7.   


    就怕Android service 在系统内存不足时也被KILL掉了,真正做SOCKET通信但老是成功不了,不知道那个地方没设置对。
      

  8.   

    今天在ANDROID应用层可以连到我的daemon对应的socket了,并且可以连上但传数据老是失败,不知道为什么。读用到了readx函数很奇怪,这个函数跟ADB有点关系,我自己换成了read函数,不知道是不是跟这个有关?
    觉得应用层跟daemon守护进程不可能通信就这么简单!!!肯定还有什么地方没想到!是ADB吗?
      

  9.   

    读/写总算通了,readx函数没看明白,原来installd.c文件里面自己封的。还半天没找到声明呢。