diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java b/telephony/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java index 1f1f7c14fc173..88cccd320ac8d 100644 --- a/telephony/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java +++ b/telephony/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java @@ -91,7 +91,8 @@ final class CdmaSMSDispatcher extends SMSDispatcher { int teleService = sms.getTeleService(); boolean handled = false; - if ((sms.getUserData() == null) && (SmsEnvelope.TELESERVICE_MWI != teleService)) { + if ((sms.getUserData() == null) && (SmsEnvelope.TELESERVICE_MWI != teleService) && + (SmsEnvelope.TELESERVICE_VMN != teleService)) { if (Config.LOGD) { Log.d(TAG, "Received SMS without user data"); } diff --git a/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java b/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java index 97f92f4006359..7f3b473826a34 100644 --- a/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java +++ b/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java @@ -1106,7 +1106,7 @@ public final class BearerData { if (paramBits >= EXPECTED_PARAM_SIZE) { paramBits -= EXPECTED_PARAM_SIZE; decodeSuccess = true; - bData.numberOfMessages = inStream.read(8); + bData.numberOfMessages = IccUtils.beBcdByteToInt((byte)inStream.read(8)); } if ((! decodeSuccess) || (paramBits > 0)) { Log.d(LOG_TAG, "NUMBER_OF_MESSAGES decode " +