Android中SMS的接收处理(3)

目标端口为WAPPUSH的信息,则调用mWapPush.dispatchWapPdu(sms.getUserData(),pdus)让WAPPUSH来处理;其它未知的端口,则用“sms://localhost:<port>”指定端口。

对长短信,调用processMessagePart()进行组合处理。

1)      有目标端口且目标端口是WAP PUSH(SmsHeader.PORT_WAP_PUSH)的信息,用WapPushOverSms::dispatchWapPdu()来处理:

根据不同的contentType:

-> dispatchWapPdu_PushCO();

-> dispatchWapPdu_MMS();

-> dispatchWapPdu_default() 

2)      有目标地址且目标端口不是WAP PUSH的信息,在SMSDispatcher::dispatchPortAddressedPdus()中处理:

Uri uri =Uri.parse("sms://localhost:" + port);

Intent intent= new Intent(Intents.DATA_SMS_RECEIVED_ACTION, uri);

intent.putExtra("pdus", pdus);

dispatch(intent, "Android.permission.RECEIVE_SMS"); 

3)      通常的无目标地址的信息(普通短信),在SMSDispatcher::dispatchPdus()中处理:

Intent intent= new Intent(Intents.SMS_RECEIVED_ACTION);

intent.putExtra("pdus", pdus);

dispatch(intent, "android.permission.RECEIVE_SMS");

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyzyzs.html