短信的发送流程(framework)
一、主要文件
/packages/apps/Mms/com/android/mm/transaction/SmsSingleRecipientSender
/framework/base/telephony/java/com/android/internal/telephony/ISms.aidl
/framework/base/telephony/com/android/internal/telephony/IccSmsInterfaceManager
/telephony/java/com/android/internal/telephony/SMSDispatcher.java
/telephony/java/com/android/internal/telephony/ImsSMSDispatcher.java
/telephony/java/com/android/internal/telephony/GsmSMSDispatcher.java
/telephony/java/com/android/internal/telephony/CdmaSMSDispatcher.java
/telephony/java/android/telephony/SmsMessage.java
/base/telephony/java/com/android/internal/telephony/RIL.java
/framework/base/telephone/java/android/telephone/SmsManager
/framework/base/telephone/java/android/telephone/MSimIccSmsInterfaceManager
文件简单说明:
SmsSingleRecipientSender是应用程序Mms发送短信时需调用的类
ISms.aidl:用于和MSimIccSmsInterfaceManager进行通信
注意:这里参考的是高通2.3的源码,在4.0的源码中已经取消了MSimIccSmsInterfaceManager这个类。
二、流程图
2.1类图
![](https://img-my.csdn.net/uploads/201207/16/1342409099_9380.jpg)
2.2 时序图
1)android2.3 的时序图:
![](https://img-my.csdn.net/uploads/201207/10/1341911003_4749.jpg)
2)android4.0 的时序图
由于在4.0中取消了MSimIccSmsInterfaceManager这个类,也即是4.0使用ISms.aidl直接访问IccSmsInterfaceManager来进行一些操作,省略掉中间的这个过程。
为了给大家一个比较清晰的对比,以下为4.0的时序图: