diff options
author | yanglv <yanglv@codeaurora.org> | 2014-09-15 18:29:55 +0800 |
---|---|---|
committer | Marcos Marado <mmarado@cyngn.com> | 2016-10-04 14:40:35 +0100 |
commit | 427f7b9bc66d063257b90d9365d25c2c79a3d33c (patch) | |
tree | 375e9f08cd868f3b9d1317bba324fa9e31081dfa | |
parent | d85de45775a8e163625e3ce0f10e56038d66dd4b (diff) | |
download | android_frameworks_opt_telephony-427f7b9bc66d063257b90d9365d25c2c79a3d33c.tar.gz android_frameworks_opt_telephony-427f7b9bc66d063257b90d9365d25c2c79a3d33c.tar.bz2 android_frameworks_opt_telephony-427f7b9bc66d063257b90d9365d25c2c79a3d33c.zip |
Telephony: Show the sender address of WAP push message
Deliver sender address of WAP PUSH message to Messaging application.
Issue: PAELLA-286
Change-Id: I2a3370b6065ce5bedf9bfee152058a9575d16c32
CRs-Fixed: 593718
-rw-r--r-- | src/java/com/android/internal/telephony/InboundSmsHandler.java | 11 | ||||
-rwxr-xr-x | src/java/com/android/internal/telephony/WapPushOverSms.java | 10 |
2 files changed, 18 insertions, 3 deletions
diff --git a/src/java/com/android/internal/telephony/InboundSmsHandler.java b/src/java/com/android/internal/telephony/InboundSmsHandler.java index 29f619fba..c8e870ddf 100644 --- a/src/java/com/android/internal/telephony/InboundSmsHandler.java +++ b/src/java/com/android/internal/telephony/InboundSmsHandler.java @@ -800,6 +800,7 @@ public abstract class InboundSmsHandler extends StateMachine { int messageCount = tracker.getMessageCount(); byte[][] pdus; int destPort = tracker.getDestPort(); + String address = ""; if (messageCount == 1) { // single-part message @@ -809,7 +810,7 @@ public abstract class InboundSmsHandler extends StateMachine { Cursor cursor = null; try { // used by several query selection arguments - String address = tracker.getAddress(); + address = tracker.getAddress(); String refNumber = Integer.toString(tracker.getReferenceNumber()); String count = Integer.toString(tracker.getMessageCount()); @@ -867,10 +868,16 @@ public abstract class InboundSmsHandler extends StateMachine { if (!tracker.is3gpp2()) { SmsMessage msg = SmsMessage.createFromPdu(pdu, SmsConstants.FORMAT_3GPP); pdu = msg.getUserData(); + if (address == "") { + address = msg.getOriginatingAddress(); + } else if(address == ""){ + address = tracker.getAddress(); + } } output.write(pdu, 0, pdu.length); } - int result = mWapPush.dispatchWapPdu(output.toByteArray(), resultReceiver, this); + int result = mWapPush.dispatchWapPdu(output.toByteArray(), resultReceiver, + this, address); if (DBG) log("dispatchWapPdu() returned " + result); // result is Activity.RESULT_OK if an ordered broadcast was sent if (result == Activity.RESULT_OK) { diff --git a/src/java/com/android/internal/telephony/WapPushOverSms.java b/src/java/com/android/internal/telephony/WapPushOverSms.java index 97118ba27..0a2d065c8 100755 --- a/src/java/com/android/internal/telephony/WapPushOverSms.java +++ b/src/java/com/android/internal/telephony/WapPushOverSms.java @@ -116,11 +116,13 @@ public class WapPushOverSms implements ServiceConnection { * wap-230-wsp-20010705-a section 8 for details on the WAP PDU format. * * @param pdu The WAP PDU, made up of one or more SMS PDUs + * @param address The originating address * @return a result code from {@link android.provider.Telephony.Sms.Intents}, or * {@link Activity#RESULT_OK} if the message has been broadcast * to applications */ - public int dispatchWapPdu(byte[] pdu, BroadcastReceiver receiver, InboundSmsHandler handler) { + public int dispatchWapPdu(byte[] pdu, BroadcastReceiver receiver, InboundSmsHandler handler, + String address) { if (DBG) Rlog.d(TAG, "Rx: " + IccUtils.bytesToHexString(pdu)); @@ -251,6 +253,9 @@ public class WapPushOverSms implements ServiceConnection { intent.putExtra("data", intentData); intent.putExtra("contentTypeParameters", pduDecoder.getContentParameters()); + if (!TextUtils.isEmpty(address)) { + intent.putExtra("address", address); + } SubscriptionManager.putPhoneIdAndSubIdExtra(intent, phoneId); int procRet = wapPushMan.processMessage(wapAppId, contentType, intent); @@ -292,6 +297,9 @@ public class WapPushOverSms implements ServiceConnection { intent.putExtra("header", header); intent.putExtra("data", intentData); intent.putExtra("contentTypeParameters", pduDecoder.getContentParameters()); + if (!TextUtils.isEmpty(address)) { + intent.putExtra("address", address); + } SubscriptionManager.putPhoneIdAndSubIdExtra(intent, phoneId); // Direct the intent to only the default WAP Push app. If none declared: |