SmsMessage.java revision 0825495a331bb44df395a0cdb79fab85e68db5d5
10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/* 20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2008 The Android Open Source Project 30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License. 60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at 70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software 110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and 140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License. 150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage android.telephony.gsm; 180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Parcel; 200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.TelephonyManager; 210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.GsmAlphabet; 230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.EncodeException; 240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.SmsHeader; 250825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.SmsMessageBase; 260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.SmsMessageBase.SubmitPduBase; 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 280825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.Arrays; 290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 300825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport static android.telephony.TelephonyManager.PHONE_TYPE_CDMA; 310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/** 340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * A Short Message Service message. 350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Replaced by android.telephony.SmsMessage that supports both GSM and CDMA. 360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville@Deprecated 380825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class SmsMessage { 390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final boolean LOCAL_DEBUG = true; 400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final String LOG_TAG = "SMS"; 410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SMS Class enumeration. 440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See TS 23.038. 450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public enum MessageClass{ 490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville UNKNOWN, CLASS_0, CLASS_1, CLASS_2, CLASS_3; 500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** Unknown encoding scheme (see TS 23.038) 530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated public static final int ENCODING_UNKNOWN = 0; 560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 7-bit encoding scheme (see TS 23.038) 580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated public static final int ENCODING_7BIT = 1; 610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 8-bit encoding scheme (see TS 23.038) 630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated public static final int ENCODING_8BIT = 2; 660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 16-bit encoding scheme (see TS 23.038) 680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated public static final int ENCODING_16BIT = 3; 710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** The maximum number of payload bytes per message 730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated public static final int MAX_USER_DATA_BYTES = 140; 760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The maximum number of payload bytes per message if a user data header 790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * is present. This assumes the header only contains the 800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * CONCATENATED_8_BIT_REFERENCE element. 810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @hide pending API Council approval to extend the public API 840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated public static final int MAX_USER_DATA_BYTES_WITH_HEADER = 134; 860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** The maximum number of payload septets per message 880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated public static final int MAX_USER_DATA_SEPTETS = 160; 910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The maximum number of payload septets per message if a user data header 940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * is present. This assumes the header only contains the 950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * CONCATENATED_8_BIT_REFERENCE element. 960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated public static final int MAX_USER_DATA_SEPTETS_WITH_HEADER = 153; 990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** Contains actual SmsMessage. Only public for debugging and for framework layer. 1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@hide} 1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated public SmsMessageBase mWrappedSmsMessage; 1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** @deprecated Use android.telephony.SmsMessage. */ 1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static class SubmitPdu { 1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** @deprecated Use android.telephony.SmsMessage. */ 1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated public byte[] encodedScAddress; // Null if not applicable. 1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** @deprecated Use android.telephony.SmsMessage. */ 1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated public byte[] encodedMessage; 1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville //Constructor 1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** @deprecated Use android.telephony.SmsMessage. */ 1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public SubmitPdu() { 1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** @deprecated Use android.telephony.SmsMessage. 1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@hide} 1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected SubmitPdu(SubmitPduBase spb) { 1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this.encodedMessage = spb.encodedMessage; 1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this.encodedScAddress = spb.encodedScAddress; 1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** @deprecated Use android.telephony.SmsMessage. */ 1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String toString() { 1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return "SubmitPdu: encodedScAddress = " 1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + Arrays.toString(encodedScAddress) 1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + ", encodedMessage = " 1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + Arrays.toString(encodedMessage); 1360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Constructor 1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** @deprecated Use android.telephony.SmsMessage. */ 1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public SmsMessage() { 1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville this(getSmsFacility()); 1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private SmsMessage(SmsMessageBase smb) { 1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville mWrappedSmsMessage = smb; 1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Create an SmsMessage from a raw PDU. 1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static SmsMessage createFromPdu(byte[] pdu) { 1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville SmsMessageBase wrappedMessage; 1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int activePhone = TelephonyManager.getDefault().getCurrentPhoneType(); 1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (PHONE_TYPE_CDMA == activePhone) { 1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville wrappedMessage = com.android.internal.telephony.cdma.SmsMessage.createFromPdu(pdu); 1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville wrappedMessage = com.android.internal.telephony.gsm.SmsMessage.createFromPdu(pdu); 1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return new SmsMessage(wrappedMessage); 1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Get the TP-Layer-Length for the given SMS-SUBMIT PDU Basically, the 1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * length in bytes (not hex chars) less the SMSC header 1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static int getTPLayerLengthForPDU(String pdu) { 1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int activePhone = TelephonyManager.getDefault().getCurrentPhoneType(); 1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (PHONE_TYPE_CDMA == activePhone) { 1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return com.android.internal.telephony.cdma.SmsMessage.getTPLayerLengthForPDU(pdu); 1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return com.android.internal.telephony.gsm.SmsMessage.getTPLayerLengthForPDU(pdu); 1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Calculates the number of SMS's required to encode the message body and 1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * the number of characters remaining until the next message, given the 1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * current encoding. 1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param messageBody the message to encode 1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param use7bitOnly if true, characters that are not part of the GSM 1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * alphabet are counted as a single space char. If false, a 1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * messageBody containing non-GSM alphabet characters is calculated 1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * for 16-bit encoding. 1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return an int[4] with int[0] being the number of SMS's required, int[1] 1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * the number of code units used, and int[2] is the number of code 1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * units remaining until the next message. int[3] is the encoding 1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * type that should be used for the message. 1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 2010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static int[] calculateLength(CharSequence messageBody, boolean use7bitOnly) { 2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville GsmAlphabet.TextEncodingDetails ted = 2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville com.android.internal.telephony.gsm.SmsMessage 2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville .calculateLength(messageBody, use7bitOnly); 2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int ret[] = new int[4]; 2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret[0] = ted.msgCount; 2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret[1] = ted.codeUnitCount; 2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret[2] = ted.codeUnitsRemaining; 2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ret[3] = ted.codeUnitSize; 2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return ret; 2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Calculates the number of SMS's required to encode the message body and 2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * the number of characters remaining until the next message, given the 2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * current encoding. 2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param messageBody the message to encode 2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param use7bitOnly if true, characters that are not part of the GSM 2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * alphabet are counted as a single space char. If false, a 2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * messageBody containing non-GSM alphabet characters is calculated 2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * for 16-bit encoding. 2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return an int[4] with int[0] being the number of SMS's required, int[1] 2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * the number of code units used, and int[2] is the number of code 2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * units remaining until the next message. int[3] is the encoding 2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * type that should be used for the message. 2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static int[] calculateLength(String messageBody, boolean use7bitOnly) { 2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return calculateLength((CharSequence)messageBody, use7bitOnly); 2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Get an SMS-SUBMIT PDU for a destination address and a message 2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param scAddress Service Centre address. Null means use default. 2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return a <code>SubmitPdu</code> containing the encoded SC 2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * address, if applicable, and the encoded message. 2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns null on encode error. 2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @hide 2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static SubmitPdu getSubmitPdu(String scAddress, 2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String destinationAddress, String message, 2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville boolean statusReportRequested, byte[] header) { 2480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville SubmitPduBase spb; 2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int activePhone = TelephonyManager.getDefault().getCurrentPhoneType(); 2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (PHONE_TYPE_CDMA == activePhone) { 2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville spb = com.android.internal.telephony.cdma.SmsMessage.getSubmitPdu(scAddress, 2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville destinationAddress, message, statusReportRequested, 2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville SmsHeader.fromByteArray(header)); 2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 2560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville spb = com.android.internal.telephony.gsm.SmsMessage.getSubmitPdu(scAddress, 2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville destinationAddress, message, statusReportRequested, header); 2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return new SubmitPdu(spb); 2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Get an SMS-SUBMIT PDU for a destination address and a message 2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param scAddress Service Centre address. Null means use default. 2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return a <code>SubmitPdu</code> containing the encoded SC 2680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * address, if applicable, and the encoded message. 2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns null on encode error. 2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 2730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static SubmitPdu getSubmitPdu(String scAddress, 2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String destinationAddress, String message, boolean statusReportRequested) { 2750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville SubmitPduBase spb; 2760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int activePhone = TelephonyManager.getDefault().getCurrentPhoneType(); 2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (PHONE_TYPE_CDMA == activePhone) { 2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville spb = com.android.internal.telephony.cdma.SmsMessage.getSubmitPdu(scAddress, 2800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville destinationAddress, message, statusReportRequested, null); 2810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville spb = com.android.internal.telephony.gsm.SmsMessage.getSubmitPdu(scAddress, 2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville destinationAddress, message, statusReportRequested); 2840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return new SubmitPdu(spb); 2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Get an SMS-SUBMIT PDU for a data message to a destination address & port 2910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 2920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param scAddress Service Centre address. null == use default 2930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param destinationAddress the address of the destination for the message 2940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param destinationPort the port to deliver the message to at the 2950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * destination 2960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param data the dat for the message 2970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return a <code>SubmitPdu</code> containing the encoded SC 2980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * address, if applicable, and the encoded message. 2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns null on encode error. 3000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static SubmitPdu getSubmitPdu(String scAddress, 3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String destinationAddress, short destinationPort, byte[] data, 3050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville boolean statusReportRequested) { 3060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville SubmitPduBase spb; 3070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int activePhone = TelephonyManager.getDefault().getCurrentPhoneType(); 3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (PHONE_TYPE_CDMA == activePhone) { 3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville spb = com.android.internal.telephony.cdma.SmsMessage.getSubmitPdu(scAddress, 3110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville destinationAddress, destinationPort, data, statusReportRequested); 3120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville spb = com.android.internal.telephony.gsm.SmsMessage.getSubmitPdu(scAddress, 3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville destinationAddress, destinationPort, data, statusReportRequested); 3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return new SubmitPdu(spb); 3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the address of the SMS service center that relayed this message 3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * or null if there is none. 3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getServiceCenterAddress() { 3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getServiceCenterAddress(); 3280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the originating address (sender) of this SMS message in String 3320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * form or null if unavailable 3330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 3340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 3360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getOriginatingAddress() { 3370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getOriginatingAddress(); 3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the originating address, or email from address if this message 3420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * was from an email gateway. Returns null if originating address 3430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * unavailable. 3440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 3450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 3470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getDisplayOriginatingAddress() { 3480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getDisplayOriginatingAddress(); 3490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the message body as a String, if it exists and is text based. 3530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return message body is there is one, otherwise null 3540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 3550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 3570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getMessageBody() { 3580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getMessageBody(); 3590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the class of this message. 3630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 3640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public MessageClass getMessageClass() { 3670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int index = mWrappedSmsMessage.getMessageClass().ordinal(); 3680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return MessageClass.values()[index]; 3700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the message body, or email message body if this message was from 3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * an email gateway. Returns null if message body unavailable. 3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 3760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getDisplayMessageBody() { 3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getDisplayMessageBody(); 3800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unofficial convention of a subject line enclosed in parens empty string 3840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * if not present 3850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 3860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 3880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getPseudoSubject() { 3890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getPseudoSubject(); 3900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the service centre timestamp in currentTimeMillis() format 3940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 3950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 3970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public long getTimestampMillis() { 3980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getTimestampMillis(); 3990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns true if message is an email. 4030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 4040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return true if this message came through an email gateway and email 4050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * sender / subject / parsed body are available 4060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 4070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 4090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isEmail() { 4100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.isEmail(); 4110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return if isEmail() is true, body of the email sent through the gateway. 4150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * null otherwise 4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 4170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getEmailBody() { 4200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getEmailBody(); 4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return if isEmail() is true, email from address of email sent through 4250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * the gateway. null otherwise 4260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 4270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 4290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getEmailFrom() { 4300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getEmailFrom(); 4310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Get protocol identifier. 4350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 4360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getProtocolIdentifier() { 4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getProtocolIdentifier(); 4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See TS 23.040 9.2.3.9 returns true if this is a "replace short message" SMS 4440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 4450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 4470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isReplace() { 4480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.isReplace(); 4490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns true for CPHS MWI toggle message. 4530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 4540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return true if this is a CPHS MWI toggle message See CPHS 4.2 section B.4.2 4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 4560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 4580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isCphsMwiMessage() { 4590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.isCphsMwiMessage(); 4600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * returns true if this message is a CPHS voicemail / message waiting 4640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * indicator (MWI) clear message 4650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 4660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 4680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isMWIClearMessage() { 4690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.isMWIClearMessage(); 4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * returns true if this message is a CPHS voicemail / message waiting 4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * indicator (MWI) set message 4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 4760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isMWISetMessage() { 4790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.isMWISetMessage(); 4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * returns true if this message is a "Message Waiting Indication Group: 4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Discard Message" notification and should not be stored. 4850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 4860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isMwiDontStore() { 4890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.isMwiDontStore(); 4900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * returns the user data section minus the user data header if one was present. 4940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 4950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 4970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public byte[] getUserData() { 4980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getUserData(); 4990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /* Not part of the SDK interface and only needed by specific classes: 5020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville protected SmsHeader getUserDataHeader() 5030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 5060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the raw PDU for the message. 5070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 5080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return the raw PDU for the message. 5090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 5100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 5120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public byte[] getPdu() { 5130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getPdu(); 5140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 5170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the status of the message on the SIM (read, unread, sent, unsent). 5180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 5190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return the status of the message on the SIM. These are: 5200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SmsManager.STATUS_ON_SIM_FREE 5210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SmsManager.STATUS_ON_SIM_READ 5220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SmsManager.STATUS_ON_SIM_UNREAD 5230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SmsManager.STATUS_ON_SIM_SEND 5240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SmsManager.STATUS_ON_SIM_UNSENT 5250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage and getStatusOnIcc instead. 5260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 5280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getStatusOnSim() { 5290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getStatusOnIcc(); 5300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 5330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the status of the message on the ICC (read, unread, sent, unsent). 5340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 5350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return the status of the message on the ICC. These are: 5360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SmsManager.STATUS_ON_ICC_FREE 5370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SmsManager.STATUS_ON_ICC_READ 5380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SmsManager.STATUS_ON_ICC_UNREAD 5390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SmsManager.STATUS_ON_ICC_SEND 5400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SmsManager.STATUS_ON_ICC_UNSENT 5410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 5420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @hide 5430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 5450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getStatusOnIcc() { 5460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getStatusOnIcc(); 5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 5510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the record index of the message on the SIM (1-based index). 5520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return the record index of the message on the SIM, or -1 if this 5530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SmsMessage was not created from a SIM SMS EF record. 5540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage and getIndexOnIcc instead. 5550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 5570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getIndexOnSim() { 5580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getIndexOnIcc(); 5590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 5620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the record index of the message on the ICC (1-based index). 5630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return the record index of the message on the ICC, or -1 if this 5640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SmsMessage was not created from a ICC SMS EF record. 5650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @hide 5670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 5690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getIndexOnIcc() { 5700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getIndexOnIcc(); 5720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 5750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * GSM: 5760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * For an SMS-STATUS-REPORT message, this returns the status field from 5770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * the status report. This field indicates the status of a previously 5780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * submitted SMS, if requested. See TS 23.040, 9.2.3.15 TP-Status for a 5790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * description of values. 5800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * CDMA: 5810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * For not interfering with status codes from GSM, the value is 5820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * shifted to the bits 31-16. 5830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The value is composed of an error class (bits 25-24) and a status code (bits 23-16). 5840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Possible codes are described in C.S0015-B, v2.0, 4.5.21. 5850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 5860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return 0 indicates the previously sent message was received. 5870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See TS 23.040, 9.9.2.3.15 and C.S0015-B, v2.0, 4.5.21 5880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * for a description of other possible values. 5890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 5900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 5920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int getStatus() { 5930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.getStatus(); 5940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 5970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Return true iff the message is a SMS-STATUS-REPORT message. 5980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 5990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 6000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 6010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isStatusReportMessage() { 6020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.isStatusReportMessage(); 6030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 6060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns true iff the <code>TP-Reply-Path</code> bit is set in 6070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * this message. 6080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 6090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 6100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @Deprecated 6110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isReplyPathPresent() { 6120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return mWrappedSmsMessage.isReplyPathPresent(); 6130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** This method returns the reference to a specific 6160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * SmsMessage object, which is used for accessing its static methods. 6170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return Specific SmsMessage. 6180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @deprecated Use android.telephony.SmsMessage. 6190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 6200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final SmsMessageBase getSmsFacility(){ 6210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int activePhone = TelephonyManager.getDefault().getCurrentPhoneType(); 6220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (PHONE_TYPE_CDMA == activePhone) { 6230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return new com.android.internal.telephony.cdma.SmsMessage(); 6240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 6250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return new com.android.internal.telephony.gsm.SmsMessage(); 6260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 6280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 629