主界面:

com.android.mms.ui.ConversationList.java [extends ListActivity]

点击新建信息:onListItemClick -〉 position == 0 -〉createNewMessage()-〉 startActivity[ComposeMessageActivity]

com.android.mms.ui.ComposeMessageActivity.java

点击发送按钮:onClick -> mSendButton -> confirmSendMessageIfNeeded() -> sendMessage(true) ->

mWorkingMessage.setPhoneId(phoneId); mWorkingMessage.send(mDebugRecipients);

com.android.mms.data.WorkingMessage.java

send:如果是彩信 sendMmsWork 如果是短信preSendSmsWorker

-------------------------------------------------------------------------------------------------------

短信流程:

preSendSmsWorker -〉 sendSmsWorker -〉SmsMessageSender.sendMessage(threadId)

com.android.mms.transaction.SmsMessageSender.java

sendMessage -> queueMessage ->

mContext.sendBroadcast[SmsReceiverService.ACTION_SEND_MESSAGE, SmsReceiver.class]

com.android.mms.transaction.SmsReceiver.java

com.android.mms.transaction.SmsReceiverService.java

handleMessage -> ACTION_SEND_MESSAGE -> handleSendMessage -> sendFirstQueuedMessage ->

SmsSingleRecipientSender.sendMessage

com.android.mms.transaction.SmsSingleRecipientSender.java

sendMessage -> SmsManager.sendMultipartTextMessage

进入Framework层

frameworks/base/telephony/java/android/telephony/SmsManager.java

sendMultipartTextMessage -> 一条短信是不是需要分多个部分(太长)?

ISms.sendMultipartText | ISms.sendText

frameworks/base/telephony/java/com/android/internal/telephony/IccSmsInterfaceManager.java

sendText -> CdmaSMSDispatcher.sendText | GsmSMSDispatcher.sendText

[cdma]

frameworks/base/telephony/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java

sendText -> sendSubmitPdu -> sendRawPdu ->

sendSms | sendMessage

sendSms -> CommandsInterface.sendCdmaSms

frameworks/base/telephony/java/com/android/internal/telephony/RIL.java

sendCdmaSms -> RIL_REQUEST_CDMA_SEND_SMS

hardware/ril_c/reference-ril/reference-cpb71.c

case RIL_REQUEST_CDMA_SEND_SMS: requestSendCdmaSMS -> at_send_command

[gsm]

frameworks/base/telephony/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java

sendText -> sendRawPdu ->

sendSms | sendMessage

sendSms -> CommandInterface.sendSMS

frameworks/base/telephony/java/com/android/internal/telephony/RIL.java

sendSMS ->RIL_REQUEST_SEND_SMS

更多相关文章

  1. Android模仿Buttonbar
  2. android点击空白区域隐藏软键盘的实现
  3. android ontouch onclick 触发顺序
  4. android RadioButton 点击时候出现点击声音的效果
  5. android 模拟按钮点击
  6. Android(安卓)点击按钮,文字改变颜色
  7. Android(安卓)接收短信并屏蔽notification 提示
  8. Android(安卓)使用内容解析者往短信数据库里插入一条数据
  9. Android发短信程序

随机推荐

  1. Python正则表达式快速学习
  2. Linux文件系统详解
  3. Docker框架的使用系列教程(二)
  4. 如何上传项目到GitHub
  5. Linux 自带神器 logrotate 详解
  6. Python操作SQLite数据库
  7. 企业架构中的坑:你是否搞混了“服务”?
  8. 手把手教Linux驱动9-等待队列waitq
  9. Linux设备驱动之Ioctl控制
  10. DM9000驱动移植在mini2440(linux2.6.29)