短信发送--短信发送流程--应用层

本文详细解析了短信发送的整个流程,从用户在ComposeMessageActivity中编辑短信,点击发送按钮,到一系列的验证和处理,包括onClick方法的逻辑、confirmSendMessageIfNeeded方法的调用,再到WorkingMessage、SmsMessageSender、SmsReceiver到SmsReceiverService的交互,最后通过SmsSingleRecipientSender进行实际发送。整个过程涉及多个类和方法,展示了短信发送的完整步骤。
摘要由CSDN通过智能技术生成
短信发送流程应用层解析

1、涉及的类

com.android.mms.ui.ComposeMessageActivity
com.android.mms.data.WorkingMessage
com.android.mms.transaction.MessageSender
com.android.mms.transaction.SmsMessageSender
com.android.mms.transaction.SmsSingleRecipientSender
com.android.mms.transaction.SmsReceiverService
com.android.mms.transaction.SmsReceiver
2、时序图
说明:从ui界面开始,到调用中间层SmsManger的方法发送短信,大致时序就是这样,参考代码是android 2.3

3、流程解析

3.1 ComposeMessageActivity工作

该类是我们编辑短信的UI,与用户交互,如下图所示


当用户编辑完成,即可点击发送的按钮,将短信内容发送出去,点击sendbutton就会触发该button对应的监听器,由于ComposeMessageActivity实现了OnClickListener接口,所以最终调用到了onclick方法里。

1)onClick分析

   该方法做了两件件事情:

    一是调用isPreparedForSending方法判断当前短信是否准备发送,依据就是短信短信的接收者是否超过允许的上限,是否有接收者,以及短信是否有内容或者附件、主题之类的,不允许用户发送一条什么都没有的短信出去。

   二是,上面的检查通过调用confirmSendMessageIfNeeded方法开始发送流程。当然并不是调用了该方法就一定能发送成功,该方法同样会做一系列的检查,直到符合要求了才会放行。

2)confirmSendMessageIfNeeded分析 

该方法的逻辑调用如下图所示:

3)sendMessage方法分析
上图可以看出最后都要走到sendMessage来,我们来看看这个方法到底做了哪些工作。
通过查看代码我们可以发现最最核心的工作就是: 把发送
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值