• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2007 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.telephony.gsm;
18 
19 import android.app.PendingIntent;
20 
21 import java.util.ArrayList;
22 
23 
24 /**
25  * Manages SMS operations such as sending data, text, and pdu SMS messages.
26  * Get this object by calling the static method SmsManager.getDefault().
27  * @deprecated Replaced by android.telephony.SmsManager that supports both GSM and CDMA.
28  */
29 @Deprecated public final class SmsManager {
30     private static SmsManager sInstance;
31     private android.telephony.SmsManager mSmsMgrProxy;
32 
33     /** Get the default instance of the SmsManager
34      *
35      * @return the default instance of the SmsManager
36      * @deprecated Use android.telephony.SmsManager.
37      */
38     @Deprecated
getDefault()39     public static final SmsManager getDefault() {
40         if (sInstance == null) {
41             sInstance = new SmsManager();
42         }
43         return sInstance;
44     }
45 
46     @Deprecated
SmsManager()47     private SmsManager() {
48         mSmsMgrProxy = android.telephony.SmsManager.getDefault();
49     }
50 
51     /**
52      * Send a text based SMS.
53      *
54      * @param destinationAddress the address to send the message to
55      * @param scAddress is the service center address or null to use
56      *  the current default SMSC
57      * @param text the body of the message to send
58      * @param sentIntent if not NULL this <code>PendingIntent</code> is
59      *  broadcast when the message is successfully sent, or failed.
60      *  The result code will be <code>Activity.RESULT_OK<code> for success,
61      *  or one of these errors:
62      *  <code>RESULT_ERROR_GENERIC_FAILURE</code>
63      *  <code>RESULT_ERROR_RADIO_OFF</code>
64      *  <code>RESULT_ERROR_NULL_PDU</code>.
65      *  The per-application based SMS control checks sentIntent. If sentIntent
66      *  is NULL the caller will be checked against all unknown applications,
67      *  which cause smaller number of SMS to be sent in checking period.
68      * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
69      *  broadcast when the message is delivered to the recipient.  The
70      *  raw pdu of the status report is in the extended data ("pdu").
71      *
72      * @throws IllegalArgumentException if destinationAddress or text are empty
73      * @deprecated Use android.telephony.SmsManager.
74      */
75     @Deprecated
sendTextMessage( String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)76     public final void sendTextMessage(
77             String destinationAddress, String scAddress, String text,
78             PendingIntent sentIntent, PendingIntent deliveryIntent) {
79         mSmsMgrProxy.sendTextMessage(destinationAddress, scAddress, text,
80                 sentIntent, deliveryIntent);
81     }
82 
83     /**
84      * Divide a text message into several messages, none bigger than
85      * the maximum SMS message size.
86      *
87      * @param text the original message.  Must not be null.
88      * @return an <code>ArrayList</code> of strings that, in order,
89      *   comprise the original message
90      * @deprecated Use android.telephony.SmsManager.
91      */
92     @Deprecated
divideMessage(String text)93     public final ArrayList<String> divideMessage(String text) {
94         return mSmsMgrProxy.divideMessage(text);
95     }
96 
97     /**
98      * Send a multi-part text based SMS.  The callee should have already
99      * divided the message into correctly sized parts by calling
100      * <code>divideMessage</code>.
101      *
102      * @param destinationAddress the address to send the message to
103      * @param scAddress is the service center address or null to use
104      *   the current default SMSC
105      * @param parts an <code>ArrayList</code> of strings that, in order,
106      *   comprise the original message
107      * @param sentIntents if not null, an <code>ArrayList</code> of
108      *   <code>PendingIntent</code>s (one for each message part) that is
109      *   broadcast when the corresponding message part has been sent.
110      *   The result code will be <code>Activity.RESULT_OK<code> for success,
111      *   or one of these errors:
112      *   <code>RESULT_ERROR_GENERIC_FAILURE</code>
113      *   <code>RESULT_ERROR_RADIO_OFF</code>
114      *   <code>RESULT_ERROR_NULL_PDU</code>.
115      *   The per-application based SMS control checks sentIntent. If sentIntent
116      *   is NULL the caller will be checked against all unknown applicaitons,
117      *   which cause smaller number of SMS to be sent in checking period.
118      * @param deliveryIntents if not null, an <code>ArrayList</code> of
119      *   <code>PendingIntent</code>s (one for each message part) that is
120      *   broadcast when the corresponding message part has been delivered
121      *   to the recipient.  The raw pdu of the status report is in the
122      *   extended data ("pdu").
123      *
124      * @throws IllegalArgumentException if destinationAddress or data are empty
125      * @deprecated Use android.telephony.SmsManager.
126      */
127     @Deprecated
sendMultipartTextMessage( String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents)128     public final void sendMultipartTextMessage(
129             String destinationAddress, String scAddress, ArrayList<String> parts,
130             ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents) {
131         mSmsMgrProxy.sendMultipartTextMessage(destinationAddress, scAddress, parts,
132                 sentIntents, deliveryIntents);
133     }
134 
135     /**
136      * Send a data based SMS to a specific application port.
137      *
138      * @param destinationAddress the address to send the message to
139      * @param scAddress is the service center address or null to use
140      *  the current default SMSC
141      * @param destinationPort the port to deliver the message to
142      * @param data the body of the message to send
143      * @param sentIntent if not NULL this <code>PendingIntent</code> is
144      *  broadcast when the message is sucessfully sent, or failed.
145      *  The result code will be <code>Activity.RESULT_OK<code> for success,
146      *  or one of these errors:
147      *  <code>RESULT_ERROR_GENERIC_FAILURE</code>
148      *  <code>RESULT_ERROR_RADIO_OFF</code>
149      *  <code>RESULT_ERROR_NULL_PDU</code>.
150      *  The per-application based SMS control checks sentIntent. If sentIntent
151      *  is NULL the caller will be checked against all unknown applicaitons,
152      *  which cause smaller number of SMS to be sent in checking period.
153      * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
154      *  broadcast when the message is delivered to the recipient.  The
155      *  raw pdu of the status report is in the extended data ("pdu").
156      *
157      * @throws IllegalArgumentException if destinationAddress or data are empty
158      * @deprecated Use android.telephony.SmsManager.
159      */
160     @Deprecated
sendDataMessage( String destinationAddress, String scAddress, short destinationPort, byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent)161     public final void sendDataMessage(
162             String destinationAddress, String scAddress, short destinationPort,
163             byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent) {
164         mSmsMgrProxy.sendDataMessage(destinationAddress, scAddress, destinationPort,
165                 data, sentIntent, deliveryIntent);
166     }
167 
168     /**
169      * Copy a raw SMS PDU to the SIM.
170      *
171      * @param smsc the SMSC for this message, or NULL for the default SMSC
172      * @param pdu the raw PDU to store
173      * @param status message status (STATUS_ON_SIM_READ, STATUS_ON_SIM_UNREAD,
174      *               STATUS_ON_SIM_SENT, STATUS_ON_SIM_UNSENT)
175      * @return true for success
176      * @deprecated Use android.telephony.SmsManager.
177      * {@hide}
178      */
179     @Deprecated
copyMessageToSim(byte[] smsc, byte[] pdu, int status)180     public final boolean copyMessageToSim(byte[] smsc, byte[] pdu, int status) {
181         return mSmsMgrProxy.copyMessageToIcc(smsc, pdu, status);
182     }
183 
184     /**
185      * Delete the specified message from the SIM.
186      *
187      * @param messageIndex is the record index of the message on SIM
188      * @return true for success
189      * @deprecated Use android.telephony.SmsManager.
190      * {@hide}
191      */
192     @Deprecated
deleteMessageFromSim(int messageIndex)193     public final boolean deleteMessageFromSim(int messageIndex) {
194         return mSmsMgrProxy.deleteMessageFromIcc(messageIndex);
195     }
196 
197     /**
198      * Update the specified message on the SIM.
199      *
200      * @param messageIndex record index of message to update
201      * @param newStatus new message status (STATUS_ON_SIM_READ,
202      *                  STATUS_ON_SIM_UNREAD, STATUS_ON_SIM_SENT,
203      *                  STATUS_ON_SIM_UNSENT, STATUS_ON_SIM_FREE)
204      * @param pdu the raw PDU to store
205      * @return true for success
206      * @deprecated Use android.telephony.SmsManager.
207      * {@hide}
208      */
209     @Deprecated
updateMessageOnSim(int messageIndex, int newStatus, byte[] pdu)210     public final boolean updateMessageOnSim(int messageIndex, int newStatus, byte[] pdu) {
211         return mSmsMgrProxy.updateMessageOnIcc(messageIndex, newStatus, pdu);
212     }
213 
214     /**
215      * Retrieves all messages currently stored on SIM.
216      * @return <code>ArrayList</code> of <code>SmsMessage</code> objects
217      * @deprecated Use android.telephony.SmsManager.
218      * {@hide}
219      */
220     @Deprecated
getAllMessagesFromSim()221     public final ArrayList<android.telephony.SmsMessage> getAllMessagesFromSim() {
222         return android.telephony.SmsManager.getDefault().getAllMessagesFromIcc();
223     }
224 
225     /** Free space (TS 51.011 10.5.3).
226      *  @deprecated Use android.telephony.SmsManager. */
227     @Deprecated static public final int STATUS_ON_SIM_FREE      = 0;
228 
229     /** Received and read (TS 51.011 10.5.3).
230      * @deprecated Use android.telephony.SmsManager. */
231     @Deprecated static public final int STATUS_ON_SIM_READ      = 1;
232 
233     /** Received and unread (TS 51.011 10.5.3).
234      * @deprecated Use android.telephony.SmsManager. */
235     @Deprecated static public final int STATUS_ON_SIM_UNREAD    = 3;
236 
237     /** Stored and sent (TS 51.011 10.5.3).
238      * @deprecated Use android.telephony.SmsManager. */
239     @Deprecated static public final int STATUS_ON_SIM_SENT      = 5;
240 
241     /** Stored and unsent (TS 51.011 10.5.3).
242      * @deprecated Use android.telephony.SmsManager. */
243     @Deprecated static public final int STATUS_ON_SIM_UNSENT    = 7;
244 
245     /** Generic failure cause
246      * @deprecated Use android.telephony.SmsManager. */
247     @Deprecated static public final int RESULT_ERROR_GENERIC_FAILURE    = 1;
248 
249     /** Failed because radio was explicitly turned off
250      * @deprecated Use android.telephony.SmsManager. */
251     @Deprecated static public final int RESULT_ERROR_RADIO_OFF          = 2;
252 
253     /** Failed because no pdu provided
254      * @deprecated Use android.telephony.SmsManager. */
255     @Deprecated static public final int RESULT_ERROR_NULL_PDU           = 3;
256 
257     /** Failed because service is currently unavailable
258      * @deprecated Use android.telephony.SmsManager. */
259     @Deprecated static public final int RESULT_ERROR_NO_SERVICE         = 4;
260 
261 }
262