短信

作者: CircleLee | 来源:发表于2019-01-31 17:08 被阅读0次

短信发送通讯框架的类关系如图1-1所示。



SMS应用通过调用SmsManager提供的接口发送短消息。而SMS的框架处理流程则在phone进程中。从图6-1可知,GsmSMSDispatcher和CdmaSMSDispatcher分别用来处理CS业务中GSM卡和CDMA卡的短信发送,最终通过RIL.java的RIL request下发给QCRIL,最终发送给Modem。
在Google 9.0中,新增了IMS短信的发送,如图1-2所示。



ImsSMSDispatcher继承父类SMSDispatcher,专门用来处理IMS短信的发送,监听IMS短信的发送状态,送达报告状态,接收状态等。
Google只提供了接口的调用,具体实现方式由芯片厂商完成。org.codeaurora.ims包则是由高通提供的IMS服务端代码。ImsSMSDispatcher通过调用ImsManager的接口发送IMS短信,并监听短信状态。

短信接收通讯框架的类关系如图1-3所示。



MT接收短信,InboundSmsHandler通过观察者模式监听RIL上报的短信消息。进而触发StateMachine的状态机变化,从Idle转换为Delivering状态。再经过SMS acknowledge,插入删除数据库等一系列操作之后,将短信通过广播的方式通知短信App。
在短信接收过程中,如果由于系统crash等原因造成pending状态的messages没有发送给短信App。SmsBroadcastUndelivered类会在下一次Phone初始化过程中,将未完成的messages重新发送给应用,以防止信息漏接。

短信接收状态机变化如图1-4所示。初始化为Startup状态, SmsBroadcastUndelivered在初始化时,会将Startup转换为Idle状态。当接收一条新短信时,从Idle转换为Delivering状态。Delivering状态处理SMS segment,同时将状态机置为Waiting状态。当SMS消息成功广播通知到短信App,状态机从Waiting重新切回Delivering,再转换为Idle状态。完成短信的一次接收。

相关文章

  • 阿里大于发送短信验证码demo

    使用阿里云的短信服务进行短信发送 1.在阿里的短信服务申请短信签名以及短信模板 短信签名:image.png 短信...

  • 短信

    最近我刚换了电话号码,还没来得及告诉身边的朋友,却先收到了几条推广产品的骚扰短信。正巧在前两天,我碰到一个在某大型...

  • 短信

    “我市今明两天将迎来一场大到暴雨,现已启动黄色预警,望广大市民注意出行安全――市防汛办温馨提示。” 看完短信,我扣...

  • 短信

    连续三年的情人节,他都会收到来自通一个陌生号码的祝福短信,只有短短五个字‘情人节快乐’。他从来没有回复过。第四年的...

  • 短信

    如果一个人不再被需要,如果一个人的人生意义已经实现,如果一个人的全部任务已经完成,那么,他理所当然会老去,消失,不...

  • 短信

    1. “你失散多久了?” “看上一条短信。” 2. “你去哪里了?” “这不重要,我回来了。” 3. “你还是冷淡...

  • 短信

    午睡醒来,看到手机屏幕上显示一条未读信息:放暑假了吧,我也放暑假了 没有备注姓名,只是一串数字。以131开头的电话...

  • 短信

    想发一条短信,说我想你。

  • 短信

    以前每到节日他都会群发消息,也会收到许多祝福消息! 毕业后,他换了手机号码,在qq号上更改了新的号码! 一次...

  • 短信

    我编辑好了一条长长的短信准备给你发过去 却在编辑好后一个一个删除文字 其实删除和拉黑都不是放手 真正放手是云淡风轻...

网友评论

      本文标题:短信

      本文链接:https://www.haomeiwen.com/subject/gyclsqtx.html