aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryanglv <yanglv@codeaurora.org>2014-09-15 18:29:55 +0800
committerMarcos Marado <mmarado@cyngn.com>2016-10-04 14:40:35 +0100
commit427f7b9bc66d063257b90d9365d25c2c79a3d33c (patch)
tree375e9f08cd868f3b9d1317bba324fa9e31081dfa
parentd85de45775a8e163625e3ce0f10e56038d66dd4b (diff)
downloadandroid_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.java11
-rwxr-xr-xsrc/java/com/android/internal/telephony/WapPushOverSms.java10
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: