SmsMessage
open class SmsMessage
kotlin.Any | |
↳ | android.telephony.SmsMessage |
A Short Message Service message.
Summary
Nested classes | |
---|---|
SMS Class enumeration. |
|
open |
Constants | |
---|---|
static Int | |
static Int | |
static Int | |
static Int |
This value is not defined in global standard. |
static Int |
User data text encoding code unit size |
static String |
Indicates a 3GPP format SMS message. |
static String |
Indicates a 3GPP2 format SMS message. |
static Int |
The maximum number of payload bytes per message |
static Int |
The maximum number of payload bytes per message if a user data header is present. |
static Int |
The maximum number of payload septets per message |
static Int |
The maximum number of payload septets per message if a user data header is present. |
Public methods | |
---|---|
open static IntArray! |
calculateLength(msgBody: CharSequence!, use7bitOnly: Boolean) Calculates the number of SMS's required to encode the message body and the number of characters remaining until the next message. |
open static IntArray! |
calculateLength(messageBody: String!, use7bitOnly: Boolean) Calculates the number of SMS's required to encode the message body and the number of characters remaining until the next message, given the current encoding. |
open static SmsMessage! |
createFromPdu(pdu: ByteArray!) Create an SmsMessage from a raw PDU. |
open static SmsMessage! |
createFromPdu(pdu: ByteArray!, format: String!) Create an SmsMessage from a raw PDU with the specified message format. |
open String! |
Returns the message body, or email message body if this message was from an email gateway. |
open String! |
Returns the originating address, or email from address if this message was from an email gateway. |
open String! | |
open String! | |
open Int |
Returns the record index of the message on the ICC (1-based index). |
open Int |
Returns the record index of the message on the SIM (1-based index). |
open String! |
Returns the message body as a String, if it exists and is text based. |
open SmsMessage.MessageClass! |
Returns the class of this message. |
open String? |
Returns the originating address (sender) of this SMS message in String form or null if unavailable. |
open ByteArray! |
getPdu() Returns the raw PDU for the message. |
open Int |
Get protocol identifier. |
open String! |
Unofficial convention of a subject line enclosed in parens empty string if not present |
open String! |
Returns the address of the SMS service center that relayed this message or null if there is none. |
open Int |
GSM: For an SMS-STATUS-REPORT message, this returns the status field from the status report. |
open Int |
Returns the status of the message on the ICC (read, unread, sent, unsent). |
open Int |
Returns the status of the message on the SIM (read, unread, sent, unsent). |
open static SmsMessage.SubmitPdu! |
getSubmitPdu(scAddress: String!, destinationAddress: String!, message: String!, statusReportRequested: Boolean) Gets an SMS-SUBMIT PDU for a destination address and a message. |
open static SmsMessage.SubmitPdu! |
getSubmitPdu(scAddress: String!, destinationAddress: String!, destinationPort: Short, data: ByteArray!, statusReportRequested: Boolean) Gets an SMS-SUBMIT PDU for a data message to a destination address & port. |
open static Int |
getTPLayerLengthForPDU(pdu: String!) Get the TP-Layer-Length for the given SMS-SUBMIT PDU Basically, the length in bytes (not hex chars) less the SMSC header FIXME: This method is only used by a CTS test case that isn't run on CDMA devices. |
open Long |
Returns the service centre timestamp in currentTimeMillis() format |
open ByteArray! |
returns the user data section minus the user data header if one was present. |
open Boolean |
Returns true for CPHS MWI toggle message. |
open Boolean |
isEmail() Returns true if message is an email. |
open Boolean |
returns true if this message is a CPHS voicemail / message waiting indicator (MWI) clear message |
open Boolean |
returns true if this message is a CPHS voicemail / message waiting indicator (MWI) set message |
open Boolean |
returns true if this message is a "Message Waiting Indication Group: Discard Message" notification and should not be stored. |
open Boolean |
See TS 23. |
open Boolean |
Returns true iff the |
open Boolean |
Return true iff the message is a SMS-STATUS-REPORT message. |
Constants
ENCODING_KSC5601
static val ENCODING_KSC5601: Int
This value is not defined in global standard. Only in Korea, this is used.
Value: 4
ENCODING_UNKNOWN
static val ENCODING_UNKNOWN: Int
User data text encoding code unit size
Value: 0
FORMAT_3GPP
static val FORMAT_3GPP: String
Indicates a 3GPP format SMS message.
Value: "3gpp"
See Also
FORMAT_3GPP2
static val FORMAT_3GPP2: String
Indicates a 3GPP2 format SMS message.
Value: "3gpp2"
See Also
MAX_USER_DATA_BYTES
static val MAX_USER_DATA_BYTES: Int
The maximum number of payload bytes per message
Value: 140
MAX_USER_DATA_BYTES_WITH_HEADER
static val MAX_USER_DATA_BYTES_WITH_HEADER: Int
The maximum number of payload bytes per message if a user data header is present. This assumes the header only contains the CONCATENATED_8_BIT_REFERENCE element.
Value: 134
MAX_USER_DATA_SEPTETS
static val MAX_USER_DATA_SEPTETS: Int
The maximum number of payload septets per message
Value: 160
MAX_USER_DATA_SEPTETS_WITH_HEADER
static val MAX_USER_DATA_SEPTETS_WITH_HEADER: Int
The maximum number of payload septets per message if a user data header is present. This assumes the header only contains the CONCATENATED_8_BIT_REFERENCE element.
Value: 153
Public methods
calculateLength
open static fun calculateLength(
msgBody: CharSequence!,
use7bitOnly: Boolean
): IntArray!
Calculates the number of SMS's required to encode the message body and the number of characters remaining until the next message.
Parameters | |
---|---|
msgBody |
CharSequence!: the message to encode |
use7bitOnly |
Boolean: if true, characters that are not part of the radio-specific 7-bit encoding are counted as single space chars. If false, and if the messageBody contains non-7-bit encodable characters, length is calculated using a 16-bit encoding. |
Return | |
---|---|
IntArray! |
an int[6] with int[0] being the number of SMS's required, int[1] the number of code units used, and int[2] is the number of code units remaining until the next message. int[3] is an indicator of the encoding code unit size (see the ENCODING_* definitions in SmsConstants). int[4] is the GSM national language table to use, or 0 for the default 7-bit alphabet. int[5] The GSM national language shift table to use, or 0 for the default 7-bit extension table. |
calculateLength
open static fun calculateLength(
messageBody: String!,
use7bitOnly: Boolean
): IntArray!
Calculates the number of SMS's required to encode the message body and the number of characters remaining until the next message, given the current encoding.
Parameters | |
---|---|
messageBody |
String!: the message to encode |
use7bitOnly |
Boolean: if true, characters that are not part of the radio specific (GSM / CDMA) alphabet encoding are converted to as a single space characters. If false, a messageBody containing non-GSM or non-CDMA alphabet characters are encoded using 16-bit encoding. |
Return | |
---|---|
IntArray! |
an int[4] with int[0] being the number of SMS's required, int[1] the number of code units used, and int[2] is the number of code units remaining until the next message. int[3] is the encoding type that should be used for the message. |
createFromPdu
open static funcreateFromPdu(pdu: ByteArray!): SmsMessage!
Deprecated: Use createFromPdu(byte[],java.lang.String)
instead.
Create an SmsMessage from a raw PDU. Guess format based on Voice technology first, if it fails use other format. All applications which handle incoming SMS messages by processing the SMS_RECEIVED_ACTION
broadcast intent must now pass the new format
String extra from the intent into the new method createFromPdu(byte[], String)
which takes an extra format parameter. This is required in order to correctly decode the PDU on devices that require support for both 3GPP and 3GPP2 formats at the same time, such as dual-mode GSM/CDMA and CDMA/LTE phones.
createFromPdu
open static fun createFromPdu(
pdu: ByteArray!,
format: String!
): SmsMessage!
Create an SmsMessage from a raw PDU with the specified message format. The message format is passed in the android.provider.Telephony.Sms.Intents#SMS_RECEIVED_ACTION
as the format
String extra, and will be either "3gpp" for GSM/UMTS/LTE messages in 3GPP format or "3gpp2" for CDMA/LTE messages in 3GPP2 format.
Parameters | |
---|---|
pdu |
ByteArray!: the message PDU from the android.provider.Telephony.Sms.Intents#SMS_RECEIVED_ACTION intent |
format |
String!: the format extra from the android.provider.Telephony.Sms.Intents#SMS_RECEIVED_ACTION intent |
getDisplayMessageBody
open fun getDisplayMessageBody(): String!
Returns the message body, or email message body if this message was from an email gateway. Returns null if message body unavailable.
getDisplayOriginatingAddress
open fun getDisplayOriginatingAddress(): String!
Returns the originating address, or email from address if this message was from an email gateway. Returns null if originating address unavailable.
getEmailBody
open fun getEmailBody(): String!
Return | |
---|---|
String! |
if isEmail() is true, body of the email sent through the gateway. null otherwise |
getEmailFrom
open fun getEmailFrom(): String!
Return | |
---|---|
String! |
if isEmail() is true, email from address of email sent through the gateway. null otherwise |
getIndexOnIcc
open fun getIndexOnIcc(): Int
Returns the record index of the message on the ICC (1-based index).
Return | |
---|---|
Int |
the record index of the message on the ICC, or -1 if this SmsMessage was not created from a ICC SMS EF record. |
getIndexOnSim
open fungetIndexOnSim(): Int
Deprecated: Use getIndexOnIcc instead.
Returns the record index of the message on the SIM (1-based index).
Return | |
---|---|
Int |
the record index of the message on the SIM, or -1 if this SmsMessage was not created from a SIM SMS EF record. |
getMessageBody
open fun getMessageBody(): String!
Returns the message body as a String, if it exists and is text based.
Return | |
---|---|
String! |
message body if there is one, otherwise null |
getMessageClass
open fun getMessageClass(): SmsMessage.MessageClass!
Returns the class of this message.
getOriginatingAddress
open fun getOriginatingAddress(): String?
Returns the originating address (sender) of this SMS message in String form or null if unavailable.
If the address is a GSM-formatted address, it will be in a format specified by 3GPP 23.040 Sec 9.1.2.5. If it is a CDMA address, it will be a format specified by 3GPP2 C.S005-D Table 2.7.1.3.2.4-2. The choice of format is carrier-specific, so callers of the should be careful to avoid assumptions about the returned content.
Return | |
---|---|
String? |
a String representation of the address; null if unavailable. |
getPdu
open fun getPdu(): ByteArray!
Returns the raw PDU for the message.
Return | |
---|---|
ByteArray! |
the raw PDU for the message. |
getProtocolIdentifier
open fun getProtocolIdentifier(): Int
Get protocol identifier.
getPseudoSubject
open fun getPseudoSubject(): String!
Unofficial convention of a subject line enclosed in parens empty string if not present
getServiceCenterAddress
open fun getServiceCenterAddress(): String!
Returns the address of the SMS service center that relayed this message or null if there is none.
getStatus
open fun getStatus(): Int
GSM: For an SMS-STATUS-REPORT message, this returns the status field from the status report. This field indicates the status of a previously submitted SMS, if requested. See TS 23.040, 9.2.3.15 TP-Status for a description of values. CDMA: For not interfering with status codes from GSM, the value is shifted to the bits 31-16. The value is composed of an error class (bits 25-24) and a status code (bits 23-16). Possible codes are described in C.S0015-B, v2.0, 4.5.21.
Return | |
---|---|
Int |
0 for GSM or 2 shifted left by 16 for CDMA indicates the previously sent message was received. See TS 23.040, 9.2.3.15 and C.S0015-B, v2.0, 4.5.21 for a description of other possible values. |
getStatusOnIcc
open fun getStatusOnIcc(): Int
Returns the status of the message on the ICC (read, unread, sent, unsent).
Return | |
---|---|
Int |
the status of the message on the ICC. These are: SmsManager.STATUS_ON_ICC_FREE SmsManager.STATUS_ON_ICC_READ SmsManager.STATUS_ON_ICC_UNREAD SmsManager.STATUS_ON_ICC_SEND SmsManager.STATUS_ON_ICC_UNSENT |
getStatusOnSim
open fungetStatusOnSim(): Int
Deprecated: Use getStatusOnIcc instead.
Returns the status of the message on the SIM (read, unread, sent, unsent).
Return | |
---|---|
Int |
the status of the message on the SIM. These are: SmsManager.STATUS_ON_SIM_FREE SmsManager.STATUS_ON_SIM_READ SmsManager.STATUS_ON_SIM_UNREAD SmsManager.STATUS_ON_SIM_SEND SmsManager.STATUS_ON_SIM_UNSENT |
getSubmitPdu
open static fun getSubmitPdu(
scAddress: String!,
destinationAddress: String!,
message: String!,
statusReportRequested: Boolean
): SmsMessage.SubmitPdu!
Gets an SMS-SUBMIT PDU for a destination address and a message. This method will not attempt to use any GSM national language 7 bit encodings.
Parameters | |
---|---|
scAddress |
String!: Service Centre address. Null means use default. |
destinationAddress |
String!: the address of the destination for the message. |
message |
String!: string representation of the message payload. |
statusReportRequested |
Boolean: indicates whether a report is requested for this message. |
Return | |
---|---|
SmsMessage.SubmitPdu! |
a SubmitPdu containing the encoded SC address if applicable and the encoded message. Returns null on encode error. |
getSubmitPdu
open static fun getSubmitPdu(
scAddress: String!,
destinationAddress: String!,
destinationPort: Short,
data: ByteArray!,
statusReportRequested: Boolean
): SmsMessage.SubmitPdu!
Gets an SMS-SUBMIT PDU for a data message to a destination address & port. This method will not attempt to use any GSM national language 7 bit encodings.
Parameters | |
---|---|
scAddress |
String!: Service Centre address. Null means use default. |
destinationAddress |
String!: the address of the destination for the message. |
destinationPort |
Short: the port to deliver the message to at the destination. |
data |
ByteArray!: the data for the message. |
statusReportRequested |
Boolean: indicates whether a report is requested for this message. |
Return | |
---|---|
SmsMessage.SubmitPdu! |
a SubmitPdu containing the encoded SC address if applicable and the encoded message. Returns null on encode error. |
getTPLayerLengthForPDU
open static fun getTPLayerLengthForPDU(pdu: String!): Int
Get the TP-Layer-Length for the given SMS-SUBMIT PDU Basically, the length in bytes (not hex chars) less the SMSC header FIXME: This method is only used by a CTS test case that isn't run on CDMA devices. We should probably deprecate it and remove the obsolete test case.
getTimestampMillis
open fun getTimestampMillis(): Long
Returns the service centre timestamp in currentTimeMillis() format
getUserData
open fun getUserData(): ByteArray!
returns the user data section minus the user data header if one was present.
isCphsMwiMessage
open fun isCphsMwiMessage(): Boolean
Returns true for CPHS MWI toggle message.
Return | |
---|---|
Boolean |
true if this is a CPHS MWI toggle message See CPHS 4.2 section B.4.2 |
isEmail
open fun isEmail(): Boolean
Returns true if message is an email.
Return | |
---|---|
Boolean |
true if this message came through an email gateway and email sender / subject / parsed body are available |
isMWIClearMessage
open fun isMWIClearMessage(): Boolean
returns true if this message is a CPHS voicemail / message waiting indicator (MWI) clear message
isMWISetMessage
open fun isMWISetMessage(): Boolean
returns true if this message is a CPHS voicemail / message waiting indicator (MWI) set message
isMwiDontStore
open fun isMwiDontStore(): Boolean
returns true if this message is a "Message Waiting Indication Group: Discard Message" notification and should not be stored.
isReplace
open fun isReplace(): Boolean
See TS 23.040 9.2.3.9 returns true if this is a "replace short message" SMS
isReplyPathPresent
open fun isReplyPathPresent(): Boolean
Returns true iff the TP-Reply-Path
bit is set in this message.
isStatusReportMessage
open fun isStatusReportMessage(): Boolean
Return true iff the message is a SMS-STATUS-REPORT message.