Loading src/java/com/android/internal/telephony/cdma/CdmaInboundSmsHandler.java +4 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.content.res.Resources; import android.os.Message; import android.provider.Telephony.Sms.Intents; import android.telephony.SmsCbMessage; import android.telephony.TelephonyManager; import com.android.internal.telephony.CellBroadcastHandler; import com.android.internal.telephony.CommandsInterface; Loading Loading @@ -110,7 +111,9 @@ public class CdmaInboundSmsHandler extends InboundSmsHandler { // Handle CMAS emergency broadcast messages. if (isBroadcastType) { log("Broadcast type message"); SmsCbMessage cbMessage = sms.parseBroadcastSms(); String plmn = TelephonyManager.from(mContext).getNetworkOperatorForPhone(mPhone.getPhoneId()); SmsCbMessage cbMessage = sms.parseBroadcastSms(plmn); if (cbMessage != null) { mCellBroadcastHandler.dispatchSmsMessage(cbMessage); } else { Loading tests/telephonytests/src/com/android/internal/telephony/cdma/CdmaSmsCbTest.java +10 −10 Original line number Diff line number Diff line Loading @@ -353,7 +353,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { SmsMessage msg = createBroadcastSmsMessage(123, 456, BearerData.PRIORITY_NORMAL, BearerData.LANGUAGE_ENGLISH, encoding, TEST_TEXT); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); verifyCbValues(cbMessage); assertEquals(123, cbMessage.getServiceCategory()); assertEquals(456, cbMessage.getSerialNumber()); Loading Loading @@ -385,7 +385,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { SmsMessage msg = createBroadcastSmsMessage(987, 654, -1, -1, UserData.ENCODING_IS91_EXTENDED_PROTOCOL, IS91_TEXT); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); verifyCbValues(cbMessage); assertEquals(987, cbMessage.getServiceCategory()); assertEquals(654, cbMessage.getSerialNumber()); Loading @@ -402,7 +402,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { serviceCategory, 1234, BearerData.PRIORITY_EMERGENCY, BearerData.LANGUAGE_ENGLISH, UserData.ENCODING_7BIT_ASCII, body, -1, -1, -1, -1, -1); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); verifyCbValues(cbMessage); assertEquals(serviceCategory, cbMessage.getServiceCategory()); assertEquals(1234, cbMessage.getSerialNumber()); Loading Loading @@ -458,7 +458,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { SmsCbCmasInfo.CMAS_RESPONSE_TYPE_MONITOR, SmsCbCmasInfo.CMAS_SEVERITY_SEVERE, SmsCbCmasInfo.CMAS_URGENCY_EXPECTED, SmsCbCmasInfo.CMAS_CERTAINTY_LIKELY); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); verifyCbValues(cbMessage); assertEquals(SmsEnvelope.SERVICE_CATEGORY_CMAS_EXTREME_THREAT, cbMessage.getServiceCategory()); Loading Loading @@ -488,7 +488,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { 12345, BearerData.PRIORITY_EMERGENCY, BearerData.LANGUAGE_ENGLISH, 0x1F, EXTREME_ALERT, -1, -1, -1, -1, -1); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); assertNull("expected null for unsupported charset", cbMessage); } Loading @@ -500,7 +500,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { 67890, BearerData.PRIORITY_EMERGENCY, BearerData.LANGUAGE_ENGLISH, UserData.ENCODING_KOREAN, EXTREME_ALERT, -1, -1, -1, -1, -1); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); assertNull("expected null for unsupported charset", cbMessage); } Loading @@ -513,7 +513,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { BearerData.PRIORITY_EMERGENCY, BearerData.LANGUAGE_ENGLISH, UserData.ENCODING_7BIT_ASCII, null, -1, -1, -1, -1, -1); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); verifyCbValues(cbMessage); assertEquals(SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT, cbMessage.getServiceCategory()); Loading Loading @@ -547,7 +547,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { int category = 0x0ff0 + r.nextInt(32); // half CMAS, half non-CMAS CdmaSmsMessage cdmaSmsMessage = createBroadcastParcel(category); SmsMessage msg = createMessageFromParcel(cdmaSmsMessage, data); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); // with random input, cbMessage will almost always be null (log when it isn't) if (cbMessage != null) { Rlog.d("CdmaSmsCbTest", "success: " + cbMessage); Loading Loading @@ -581,7 +581,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { } SmsMessage msg = createMessageFromParcel(cdmaSmsMessage, bos.toByteArray()); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); } catch (Exception e) { Rlog.d("CdmaSmsCbTest", "exception thrown", e); fail("Exception in decoder at run " + run + " length " + len + ": " + e); Loading Loading @@ -744,7 +744,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { CdmaSmsMessage cdmaSmsMessage = createBroadcastParcel(SmsEnvelope.SERVICE_CATEGORY_CMAS_TEST_MESSAGE); SmsMessage msg = createMessageFromParcel(cdmaSmsMessage, CMAS_TEST_BEARER_DATA); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); assertNotNull("expected non-null for bearer data", cbMessage); assertEquals("geoScope", cbMessage.getGeographicalScope(), 1); assertEquals("serialNumber", cbMessage.getSerialNumber(), 51072); Loading Loading
src/java/com/android/internal/telephony/cdma/CdmaInboundSmsHandler.java +4 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.content.res.Resources; import android.os.Message; import android.provider.Telephony.Sms.Intents; import android.telephony.SmsCbMessage; import android.telephony.TelephonyManager; import com.android.internal.telephony.CellBroadcastHandler; import com.android.internal.telephony.CommandsInterface; Loading Loading @@ -110,7 +111,9 @@ public class CdmaInboundSmsHandler extends InboundSmsHandler { // Handle CMAS emergency broadcast messages. if (isBroadcastType) { log("Broadcast type message"); SmsCbMessage cbMessage = sms.parseBroadcastSms(); String plmn = TelephonyManager.from(mContext).getNetworkOperatorForPhone(mPhone.getPhoneId()); SmsCbMessage cbMessage = sms.parseBroadcastSms(plmn); if (cbMessage != null) { mCellBroadcastHandler.dispatchSmsMessage(cbMessage); } else { Loading
tests/telephonytests/src/com/android/internal/telephony/cdma/CdmaSmsCbTest.java +10 −10 Original line number Diff line number Diff line Loading @@ -353,7 +353,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { SmsMessage msg = createBroadcastSmsMessage(123, 456, BearerData.PRIORITY_NORMAL, BearerData.LANGUAGE_ENGLISH, encoding, TEST_TEXT); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); verifyCbValues(cbMessage); assertEquals(123, cbMessage.getServiceCategory()); assertEquals(456, cbMessage.getSerialNumber()); Loading Loading @@ -385,7 +385,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { SmsMessage msg = createBroadcastSmsMessage(987, 654, -1, -1, UserData.ENCODING_IS91_EXTENDED_PROTOCOL, IS91_TEXT); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); verifyCbValues(cbMessage); assertEquals(987, cbMessage.getServiceCategory()); assertEquals(654, cbMessage.getSerialNumber()); Loading @@ -402,7 +402,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { serviceCategory, 1234, BearerData.PRIORITY_EMERGENCY, BearerData.LANGUAGE_ENGLISH, UserData.ENCODING_7BIT_ASCII, body, -1, -1, -1, -1, -1); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); verifyCbValues(cbMessage); assertEquals(serviceCategory, cbMessage.getServiceCategory()); assertEquals(1234, cbMessage.getSerialNumber()); Loading Loading @@ -458,7 +458,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { SmsCbCmasInfo.CMAS_RESPONSE_TYPE_MONITOR, SmsCbCmasInfo.CMAS_SEVERITY_SEVERE, SmsCbCmasInfo.CMAS_URGENCY_EXPECTED, SmsCbCmasInfo.CMAS_CERTAINTY_LIKELY); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); verifyCbValues(cbMessage); assertEquals(SmsEnvelope.SERVICE_CATEGORY_CMAS_EXTREME_THREAT, cbMessage.getServiceCategory()); Loading Loading @@ -488,7 +488,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { 12345, BearerData.PRIORITY_EMERGENCY, BearerData.LANGUAGE_ENGLISH, 0x1F, EXTREME_ALERT, -1, -1, -1, -1, -1); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); assertNull("expected null for unsupported charset", cbMessage); } Loading @@ -500,7 +500,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { 67890, BearerData.PRIORITY_EMERGENCY, BearerData.LANGUAGE_ENGLISH, UserData.ENCODING_KOREAN, EXTREME_ALERT, -1, -1, -1, -1, -1); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); assertNull("expected null for unsupported charset", cbMessage); } Loading @@ -513,7 +513,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { BearerData.PRIORITY_EMERGENCY, BearerData.LANGUAGE_ENGLISH, UserData.ENCODING_7BIT_ASCII, null, -1, -1, -1, -1, -1); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); verifyCbValues(cbMessage); assertEquals(SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT, cbMessage.getServiceCategory()); Loading Loading @@ -547,7 +547,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { int category = 0x0ff0 + r.nextInt(32); // half CMAS, half non-CMAS CdmaSmsMessage cdmaSmsMessage = createBroadcastParcel(category); SmsMessage msg = createMessageFromParcel(cdmaSmsMessage, data); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); // with random input, cbMessage will almost always be null (log when it isn't) if (cbMessage != null) { Rlog.d("CdmaSmsCbTest", "success: " + cbMessage); Loading Loading @@ -581,7 +581,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { } SmsMessage msg = createMessageFromParcel(cdmaSmsMessage, bos.toByteArray()); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); } catch (Exception e) { Rlog.d("CdmaSmsCbTest", "exception thrown", e); fail("Exception in decoder at run " + run + " length " + len + ": " + e); Loading Loading @@ -744,7 +744,7 @@ public class CdmaSmsCbTest extends AndroidTestCase { CdmaSmsMessage cdmaSmsMessage = createBroadcastParcel(SmsEnvelope.SERVICE_CATEGORY_CMAS_TEST_MESSAGE); SmsMessage msg = createMessageFromParcel(cdmaSmsMessage, CMAS_TEST_BEARER_DATA); SmsCbMessage cbMessage = msg.parseBroadcastSms(); SmsCbMessage cbMessage = msg.parseBroadcastSms(""); assertNotNull("expected non-null for bearer data", cbMessage); assertEquals("geoScope", cbMessage.getGeographicalScope(), 1); assertEquals("serialNumber", cbMessage.getSerialNumber(), 51072); Loading