frameworks/opt/telephony/src/java/com/android/internal/telephony/RIL.java
processUnsolicited(RIL_UNSOL_RESPONSE_NEW_SMS) mGsmSmsRegistrant.notifyRegistrant(new AsyncResult(null, sms, null));
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmInboundSmsHandler.java
frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CdmaInboundSmsHandler.java
GsmInboundSmsHandler(phone.mCi.setOnNewGsmSms(getHandler(), EVENT_NEW_SMS, null);)
/frameworks/opt/telephony/src/java/com/android/internal/telephony/InboundSmsHandler.java
processMessage(EVENT_NEW_SMS / EVENT_INJECT_SMS)
handleNewSms() / handleInjectSms()
dispatchMessage()
frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmInboundSmsHandler.java
frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CdmaInboundSmsHandler.java
dispatchMessageRadioSpecific()
frameworks/opt/telephony/src/java/com/android/internal/telephony/InboundSmsHandler.java
dispatchNormalMessage()
addTrackerToRawTableAndSendMessage()
processMessage(processMessage)
processMessagePart()
frameworks/opt/telephony/src/java/com/android/internal/telephony/WapPushOverSms.java
dispatchWapPdu(handler.dispatchIntent)
frameworks/opt/telephony/src/java/com/android/internal/telephony/InboundSmsHandler.java
dispatchIntent( mContext.sendOrderedBroadcastAsUser)
android/frameworks/opt/telephony/src/java/com/android/internal/telephony/WapPushOverSms.java:341: Intent intent = new Intent(Intents.WAP_PUSH_DELIVER_ACTION);
android/frameworks/opt/telephony/src/java/com/android/internal/telephony/SmsApplication.java:90: * The class name of the WAP_PUSH_DELIVER_ACTION receiver in this app.
android/frameworks/opt/telephony/src/java/com/android/internal/telephony/SmsApplication.java:178: * Implement WAP_PUSH_DELIVER_ACTION broadcast receiver.
android/frameworks/opt/telephony/src/java/com/android/internal/telephony/SmsApplication.java:229: intent = new Intent(Intents.WAP_PUSH_DELIVER_ACTION);
android/frameworks/opt/telephony/src/java/com/android/internal/telephony/InboundSmsHandler.java:1028: || Intents.WAP_PUSH_DELIVER_ACTION.equals(action)
android/frameworks/opt/telephony/src/java/com/android/internal/telephony/InboundSmsHandler.java:1280: } else if (action.equals(Intents.WAP_PUSH_DELIVER_ACTION)) {
/frameworks/opt/telephony/src/java/android/provider/Telephony.java
WAP_PUSH_DELIVER_ACTION = "android.provider.Telephony.WAP_PUSH_DELIVER";
/packages/apps/Mms/src/com/android/mms/transaction/PushReceiver.java
<action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
onReceive(new ReceivePushTask(context).execute(intent);)
doInBackground(MESSAGE_TYPE_NOTIFICATION_IND)startService
/packages/apps/Mms/src/com/android/mms/transaction/TransactionService.java
onStartCommand()
handleMessage(EVENT_NEW_INTENT)
onNewIntent()
launchTransaction(mServiceHandler.sendMessage(msg);)
handleMessage()
processTransaction(transaction.process();)
packages/apps/Mms/com.android.mms.transaction
NotificationTransaction.java
process() ---> run()
{ DownloadManager downloadManager = DownloadManager.getInstance();
boolean autoDownload = allowAutoDownload();
boolean isMemoryFull = MessageUtils.isMmsMemoryFull();
boolean isTooLarge = isMmsSizeTooLarge(mNotificationInd);
}
sendNotifyRespInd //发送接收mms的回调到mmsc