Android
android.telephony.gsm
public final class

android.telephony.gsm.SmsManager

java.lang.Object
android.telephony.gsm.SmsManager

Manages SMS operations such as sending data, text, and pdu SMS messages. Get this object by calling the static method SmsManager.getDefault().

Summary

Constants

      Value  
int  RESULT_ERROR_GENERIC_FAILURE  Generic failure cause   0x00000001 
int  RESULT_ERROR_NO_SERVICE  Failed because service is currently unavailable   0x00000004 
int  RESULT_ERROR_NULL_PDU  Failed because no pdu provided   0x00000003 
int  RESULT_ERROR_RADIO_OFF  Failed because radio was explicitly turned off   0x00000002 
int  STATUS_ON_SIM_FREE  Free space (TS 51.011 10.5.3).  0x00000000 
int  STATUS_ON_SIM_READ  Received and read (TS 51.011 10.5.3).  0x00000001 
int  STATUS_ON_SIM_SENT  Stored and sent (TS 51.011 10.5.3).  0x00000005 
int  STATUS_ON_SIM_UNREAD  Received and unread (TS 51.011 10.5.3).  0x00000003 
int  STATUS_ON_SIM_UNSENT  Stored and unsent (TS 51.011 10.5.3).  0x00000007 

Public Methods

          ArrayList<String divideMessage(String text)
Divide a text message into several messages, none bigger than the maximum SMS message size.
      static    SmsManager  getDefault()
Get the default instance of the SmsManager
          void  sendDataMessage(String destinationAddress, String scAddress, short destinationPort, byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent)
Send a data based SMS to a specific application port.
          void  sendMultipartTextMessage(String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents)
Send a multi-part text based SMS.
          void  sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)
Send a text based SMS.
Methods inherited from class java.lang.Object

Details

Constants

public static final int RESULT_ERROR_GENERIC_FAILURE

Generic failure cause
Constant Value: 1 (0x00000001)

public static final int RESULT_ERROR_NO_SERVICE

Failed because service is currently unavailable
Constant Value: 4 (0x00000004)

public static final int RESULT_ERROR_NULL_PDU

Failed because no pdu provided
Constant Value: 3 (0x00000003)

public static final int RESULT_ERROR_RADIO_OFF

Failed because radio was explicitly turned off
Constant Value: 2 (0x00000002)

public static final int STATUS_ON_SIM_FREE

Free space (TS 51.011 10.5.3).
Constant Value: 0 (0x00000000)

public static final int STATUS_ON_SIM_READ

Received and read (TS 51.011 10.5.3).
Constant Value: 1 (0x00000001)

public static final int STATUS_ON_SIM_SENT

Stored and sent (TS 51.011 10.5.3).
Constant Value: 5 (0x00000005)

public static final int STATUS_ON_SIM_UNREAD

Received and unread (TS 51.011 10.5.3).
Constant Value: 3 (0x00000003)

public static final int STATUS_ON_SIM_UNSENT

Stored and unsent (TS 51.011 10.5.3).
Constant Value: 7 (0x00000007)

Public Methods

public ArrayList<String> divideMessage(String text)

Divide a text message into several messages, none bigger than the maximum SMS message size.

Parameters

text the original message. Must not be null.

Returns

  • an ArrayList of strings that, in order, comprise the original message

public static SmsManager getDefault()

Get the default instance of the SmsManager

Returns

  • the default instance of the SmsManager

public void sendDataMessage(String destinationAddress, String scAddress, short destinationPort, byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent)

Send a data based SMS to a specific application port.

Parameters

destinationAddress the address to send the message to
scAddress is the service center address or null to use the current default SMSC
destinationPort the port to deliver the message to
data the body of the message to send
sentIntent if not NULL this PendingIntent is broadcast when the message is sucessfully sent, or failed. The result code will be Activity.RESULT_OK for success, or one of these errors: RESULT_ERROR_GENERIC_FAILURE RESULT_ERROR_RADIO_OFF RESULT_ERROR_NULL_PDU. The per-application based SMS control checks sentIntent. If sentIntent is NULL the caller will be checked against all unknown applicaitons, which cause smaller number of SMS to be sent in checking period.
deliveryIntent if not NULL this PendingIntent is broadcast when the message is delivered to the recipient. The raw pdu of the status report is in the extended data ("pdu").

Throws

IllegalArgumentException if destinationAddress or data are empty

public void sendMultipartTextMessage(String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents)

Send a multi-part text based SMS. The callee should have already divided the message into correctly sized parts by calling divideMessage.

Parameters

destinationAddress the address to send the message to
scAddress is the service center address or null to use the current default SMSC
parts an ArrayList of strings that, in order, comprise the original message
sentIntents if not null, an ArrayList of PendingIntents (one for each message part) that is broadcast when the corresponding message part has been sent. The result code will be Activity.RESULT_OK for success, or one of these errors: RESULT_ERROR_GENERIC_FAILURE RESULT_ERROR_RADIO_OFF RESULT_ERROR_NULL_PDU. The per-application based SMS control checks sentIntent. If sentIntent is NULL the caller will be checked against all unknown applicaitons, which cause smaller number of SMS to be sent in checking period.
deliveryIntents if not null, an ArrayList of PendingIntents (one for each message part) that is broadcast when the corresponding message part has been delivered to the recipient. The raw pdu of the status report is in the extended data ("pdu").

public void sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)

Send a text based SMS.

Parameters

destinationAddress the address to send the message to
scAddress is the service center address or null to use the current default SMSC
text the body of the message to send
sentIntent if not NULL this PendingIntent is broadcast when the message is sucessfully sent, or failed. The result code will be Activity.RESULT_OK for success, or one of these errors: RESULT_ERROR_GENERIC_FAILURE RESULT_ERROR_RADIO_OFF RESULT_ERROR_NULL_PDU. The per-application based SMS control checks sentIntent. If sentIntent is NULL the caller will be checked against all unknown applicaitons, which cause smaller number of SMS to be sent in checking period.
deliveryIntent if not NULL this PendingIntent is broadcast when the message is delivered to the recipient. The raw pdu of the status report is in the extended data ("pdu").

Throws

IllegalArgumentException if destinationAddress or text are empty
Copyright 2007 Google Inc. Build 0.9_r1-98467 - 14 Aug 2008 18:56