public class SmsMessage
extends Object
java.lang.Object | |
↳ | android.telephony.SmsMessage |
短消息服务消息。
Nested classes |
|
---|---|
枚举 |
SmsMessage.MessageClass SMS Class枚举。 |
class |
SmsMessage.SubmitPdu
|
Constants |
|
---|---|
int |
ENCODING_16BIT |
int |
ENCODING_7BIT |
int |
ENCODING_8BIT |
int |
ENCODING_UNKNOWN 用户数据文本编码代码单元大小 |
int |
MAX_USER_DATA_BYTES 每条消息的最大有效负载字节数 |
int |
MAX_USER_DATA_BYTES_WITH_HEADER 如果存在用户数据标题,则每个消息的有效负载字节数量为最大值。 |
int |
MAX_USER_DATA_SEPTETS 每个消息的有效载荷字节数的最大值 |
int |
MAX_USER_DATA_SEPTETS_WITH_HEADER 如果用户数据标题存在,则每个消息的有效载荷字节数的最大值。 |
Public methods |
|
---|---|
static int[] |
calculateLength(CharSequence msgBody, boolean use7bitOnly) 计算消息正文编码所需的SMS数量和直到下一条消息的剩余字符数。 |
static int[] |
calculateLength(String messageBody, boolean use7bitOnly) 计算在给定当前编码的情况下编码消息正文所需的SMS的数量和直到下一条消息的剩余字符数。 |
static SmsMessage |
createFromPdu(byte[] pdu) 此方法在API级别23中已弃用。请改为使用 |
static SmsMessage |
createFromPdu(byte[] pdu, String format) 使用指定的消息格式从原始PDU创建一个SmsMessage。 |
String |
getDisplayMessageBody() 如果此邮件来自电子邮件网关,则返回邮件正文或电子邮件正文。 |
String |
getDisplayOriginatingAddress() 如果此邮件来自电子邮件网关,则返回始发地址或来自地址的电子邮件。 |
String |
getEmailBody() |
String |
getEmailFrom() |
int |
getIndexOnIcc() 返回ICC上消息的记录索引(从1开始的索引)。 |
int |
getIndexOnSim() 此方法在API级别4中已弃用。请改为使用getIndexOnIcc。 |
String |
getMessageBody() 以String形式返回消息体,如果它存在并且是基于文本的。 |
SmsMessage.MessageClass |
getMessageClass() 返回此消息的类。 |
String |
getOriginatingAddress() 以字符串形式返回此SMS消息的始发地址(发件人),如果不可用,则返回null |
byte[] |
getPdu() 返回消息的原始PDU。 |
int |
getProtocolIdentifier() 获取协议标识符。 |
String |
getPseudoSubject() 如果不存在,parens中包含的主题行的非官方约定为空字符串 |
String |
getServiceCenterAddress() 返回中继该消息的SMS服务中心的地址,如果没有,则返回null。 |
int |
getStatus() GSM:对于SMS-STATUS-REPORT消息,这将从状态报告返回状态字段。 |
int |
getStatusOnIcc() 返回ICC上消息的状态(读取,未读,已发送,未发送)。 |
int |
getStatusOnSim() 此方法在API级别4中已弃用。请改为使用getStatusOnIcc。 |
static SmsMessage.SubmitPdu |
getSubmitPdu(String scAddress, String destinationAddress, String message, boolean statusReportRequested) 获取目标地址和消息的SMS-SUBMIT PDU。 |
static SmsMessage.SubmitPdu |
getSubmitPdu(String scAddress, String destinationAddress, short destinationPort, byte[] data, boolean statusReportRequested) 获取一个SMS-SUBMIT PDU,将数据信息发送到目标地址和端口。 |
static int |
getTPLayerLengthForPDU(String pdu) 获得给定SMS-SUBMIT PDU的TP层长基本上,长度以字节为单位(不是十六进制字符)少于SMSC头FIXME:此方法仅用于未在CDMA设备上运行的CTS测试用例。 |
long |
getTimestampMillis() 以currentTimeMillis()格式返回服务中心时间戳 |
byte[] |
getUserData() 如果存在用户数据部分,则返回用户数据部分。 |
boolean |
isCphsMwiMessage() 对于CPHS MWI切换消息返回true。 |
boolean |
isEmail() 如果消息是电子邮件,则返回true。 |
boolean |
isMWIClearMessage() 如果此消息是CPHS语音邮件/消息等待指示符(MWI)清除消息,则返回true |
boolean |
isMWISetMessage() 如果此消息是CPHS语音邮件/消息等待指示符(MWI)设置消息,则返回true |
boolean |
isMwiDontStore() 如果此消息是“消息等待指示组:丢弃消息”通知并且不应存储,则返回true。 |
boolean |
isReplace() 见TS 23.040 9.2.3.9如果这是“替换短消息”SMS,则返回true |
boolean |
isReplyPathPresent() 如果在此消息中设置了 |
boolean |
isStatusReportMessage() 如果消息是SMS-STATUS-REPORT消息,则返回true。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int MAX_USER_DATA_BYTES_WITH_HEADER
如果存在用户数据标题,则每个消息的有效负载字节数量为最大值。 这假设头只包含CONCATENATED_8_BIT_REFERENCE元素。
常量值:134(0x00000086)
int MAX_USER_DATA_SEPTETS
每个消息的有效载荷字节数的最大值
常量值:160(0x000000a0)
int MAX_USER_DATA_SEPTETS_WITH_HEADER
如果用户数据标题存在,则每个消息的有效载荷字节数的最大值。 这假设头只包含CONCATENATED_8_BIT_REFERENCE元素。
常量值:153(0x00000099)
int[] calculateLength (CharSequence msgBody, boolean use7bitOnly)
计算消息正文编码所需的SMS数量和直到下一条消息的剩余字符数。
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. |
Returns | |
---|---|
int[] |
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 an indicator of the encoding code unit size (see the ENCODING_* definitions in SmsConstants) |
int[] calculateLength (String messageBody, boolean use7bitOnly)
计算在给定当前编码的情况下编码消息正文所需的SMS的数量和直到下一条消息的剩余字符数。
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. |
Returns | |
---|---|
int[] |
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. |
SmsMessage createFromPdu (byte[] pdu)
此方法在API级别23中已弃用。
改为使用createFromPdu(byte[], String)
。
从原始PDU创建一个SmsMessage。 首先猜测基于语音技术的格式,如果失败则使用其他格式。 通过处理SMS_RECEIVED_ACTION
广播意图处理传入SMS消息的所有应用程序现在都必须将新的format
String额外从意图传递到新方法createFromPdu(byte[], String)
,该方法需要一个额外的格式参数。 这是为了在需要同时支持3GPP和3GPP2格式的设备(例如双模GSM / CDMA和CDMA / LTE电话)上正确解码PDU所必需的。
Parameters | |
---|---|
pdu |
byte
|
Returns | |
---|---|
SmsMessage |
SmsMessage createFromPdu (byte[] pdu, String format)
使用指定的消息格式从原始PDU创建一个SmsMessage。 消息格式在SMS_RECEIVED_ACTION
作为format
字符串额外传递,对于3GPP格式的GSM / UMTS / LTE消息将为“3gpp”,对于3GPP2格式的CDMA / LTE消息则为“3gpp2”。
Parameters | |
---|---|
pdu |
byte : the message PDU from the SMS_RECEIVED_ACTION intent |
format |
String : the format extra from the SMS_RECEIVED_ACTION intent |
Returns | |
---|---|
SmsMessage |
String getDisplayMessageBody ()
如果此邮件来自电子邮件网关,则返回邮件正文或电子邮件正文。 如果邮件正文不可用,则返回null
Returns | |
---|---|
String |
String getDisplayOriginatingAddress ()
如果此邮件来自电子邮件网关,则返回始发地址或来自地址的电子邮件。 如果起始地址不可用,则返回空值。
Returns | |
---|---|
String |
String getEmailBody ()
Returns | |
---|---|
String |
if isEmail() is true, body of the email sent through the gateway. null otherwise |
String getEmailFrom ()
Returns | |
---|---|
String |
if isEmail() is true, email from address of email sent through the gateway. null otherwise |
int getIndexOnIcc ()
返回ICC上消息的记录索引(从1开始的索引)。
Returns | |
---|---|
int |
the record index of the message on the ICC, or -1 if this SmsMessage was not created from a ICC SMS EF record. |
int getIndexOnSim ()
此方法在API级别4中已弃用。
改用getIndexOnIcc。
返回SIM上消息的记录索引(基于1的索引)。
Returns | |
---|---|
int |
the record index of the message on the SIM, or -1 if this SmsMessage was not created from a SIM SMS EF record. |
String getMessageBody ()
以String形式返回消息体,如果它存在并且是基于文本的。
Returns | |
---|---|
String |
message body is there is one, otherwise null |
SmsMessage.MessageClass getMessageClass ()
返回此消息的类。
Returns | |
---|---|
SmsMessage.MessageClass |
String getOriginatingAddress ()
以字符串形式返回此SMS消息的始发地址(发件人),如果不可用,则返回null
Returns | |
---|---|
String |
byte[] getPdu ()
返回消息的原始PDU。
Returns | |
---|---|
byte[] |
the raw PDU for the message. |
String getPseudoSubject ()
如果不存在,parens中包含的主题行的非官方约定为空字符串
Returns | |
---|---|
String |
String getServiceCenterAddress ()
返回中继该消息的SMS服务中心的地址,如果没有,则返回null。
Returns | |
---|---|
String |
int getStatus ()
GSM:对于SMS-STATUS-REPORT消息,这将从状态报告返回状态字段。 如果要求,该字段表示先前提交的SMS的状态。 有关值的描述,请参阅TS 23.040,9.2.3.15 TP-Status。 CDMA:为了不干扰来自GSM的状态码,该值被移位到31-16位。 该值由错误类(位25-24)和状态码(位23-16)组成。 可能的代码在C.S0015-B,v2.0,4.5.21中描述。
Returns | |
---|---|
int |
0 indicates the previously sent message was received. See TS 23.040, 9.9.2.3.15 and C.S0015-B, v2.0, 4.5.21 for a description of other possible values. |
int getStatusOnIcc ()
返回ICC上消息的状态(读取,未读,已发送,未发送)。
Returns | |
---|---|
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 |
int getStatusOnSim ()
此方法在API级别4中已弃用。
改用getStatusOnIcc。
返回SIM上消息的状态(读取,未读,已发送,未发送)。
Returns | |
---|---|
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 |
SmsMessage.SubmitPdu getSubmitPdu (String scAddress, String destinationAddress, String message, boolean statusReportRequested)
获取目标地址和消息的SMS-SUBMIT PDU。 此方法不会尝试使用任何GSM国家语言7位编码。
Parameters | |
---|---|
scAddress |
String : Service Centre address. Null means use default. |
destinationAddress |
String
|
message |
String
|
statusReportRequested |
boolean
|
Returns | |
---|---|
SmsMessage.SubmitPdu |
a SubmitPdu containing the encoded SC address, if applicable, and the encoded message. Returns null on encode error. |
SmsMessage.SubmitPdu getSubmitPdu (String scAddress, String destinationAddress, short destinationPort, byte[] data, boolean statusReportRequested)
获取一个SMS-SUBMIT PDU,将数据信息发送到目标地址和端口。 此方法不会尝试使用任何GSM国家语言7位编码。
Parameters | |
---|---|
scAddress |
String : Service Centre address. null == 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 |
byte : the data for the message |
statusReportRequested |
boolean
|
Returns | |
---|---|
SmsMessage.SubmitPdu |
a SubmitPdu containing the encoded SC address, if applicable, and the encoded message. Returns null on encode error. |
int getTPLayerLengthForPDU (String pdu)
获得给定SMS-SUBMIT PDU的TP层长基本上,长度以字节为单位(不是十六进制字符)少于SMSC头FIXME:此方法仅用于未在CDMA设备上运行的CTS测试用例。 我们应该弃用它并删除过时的测试用例。
Parameters | |
---|---|
pdu |
String
|
Returns | |
---|---|
int |
long getTimestampMillis ()
以currentTimeMillis()格式返回服务中心时间戳
Returns | |
---|---|
long |
boolean isCphsMwiMessage ()
对于CPHS MWI切换消息返回true。
Returns | |
---|---|
boolean |
true if this is a CPHS MWI toggle message See CPHS 4.2 section B.4.2 |
boolean isEmail ()
如果消息是电子邮件,则返回true。
Returns | |
---|---|
boolean |
true if this message came through an email gateway and email sender / subject / parsed body are available |
boolean isMWIClearMessage ()
如果此消息是CPHS语音邮件/消息等待指示符(MWI)清除消息,则返回true
Returns | |
---|---|
boolean |
boolean isMWISetMessage ()
如果此消息是CPHS语音邮件/消息等待指示符(MWI)设置消息,则返回true
Returns | |
---|---|
boolean |
boolean isMwiDontStore ()
如果此消息是“消息等待指示组:丢弃消息”通知并且不应存储,则返回true。
Returns | |
---|---|
boolean |
boolean isReplace ()
见TS 23.040 9.2.3.9如果这是“替换短消息”SMS,则返回true
Returns | |
---|---|
boolean |
boolean isReplyPathPresent ()
如果在此消息中设置了 TP-Reply-Path
位,则返回true。
Returns | |
---|---|
boolean |
boolean isStatusReportMessage ()
如果消息是SMS-STATUS-REPORT消息,则返回true。
Returns | |
---|---|
boolean |