主界面:

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发短信程序
  2. Android 使用内容解析者往短信数据库里插入一条数据
  3. Android 接收短信并屏蔽notification 提示
  4. WCF 实例 —— Android 短信助手 (WCF + Android) (1)
  5. 还原Android PDU彩信
  6. android之发送短信的方法研究
  7. 【Android】Android 发送短信和打电话的方法
  8. Android开发傻瓜入门-开发自己的手机短信发送程序
  9. Android(java)学习笔记86:案例短信发送器

随机推荐

  1. Android培训班(21)
  2. Android存储设备(U盘,SD卡)状态监测
  3. Android(安卓)USB使用
  4. Android加载动态库失败分析
  5. Android(安卓)Studio API23以后HttpClien
  6. 用ndk-build 编译C语言文件,生成可在andro
  7. 布局概述及RelativeLayout布局
  8. Android:Toast简单消息提示框
  9. 属性方法介绍——View(1)
  10. Android(安卓)RecyclerView