mms receive 彩信接收

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lf12345678910/article/details/53816628

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

猜你喜欢

转载自blog.csdn.net/lf12345678910/article/details/53816628