blob: 32bb8b4918492de15d4bb3407aaf27faed1365cf [file] [log] [blame]
Wink Saville5a725532013-02-07 17:03:05 -08001/*
2** Copyright 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
17package com.android.internal.telephony;
18
19import android.app.PendingIntent;
Ye Wen295f2192014-07-09 16:51:49 -070020import android.net.Uri;
Wink Saville5a725532013-02-07 17:03:05 -080021import com.android.internal.telephony.SmsRawData;
22
23/** Interface for applications to access the ICC phone book.
24 *
25 * <p>The following code snippet demonstrates a static method to
26 * retrieve the ISms interface from Android:</p>
27 * <pre>private static ISms getSmsInterface()
28 throws DeadObjectException {
29 IServiceManager sm = ServiceManagerNative.getDefault();
30 ISms ss;
31 ss = ISms.Stub.asInterface(sm.getService("isms"));
32 return ss;
33}
34 * </pre>
35 */
36
37interface ISms {
38 /**
39 * Retrieves all messages currently stored on ICC.
40 *
41 * @return list of SmsRawData of all sms on ICC
42 */
43 List<SmsRawData> getAllMessagesFromIccEf(String callingPkg);
44
45 /**
Wink Savillefb40dd42014-06-12 17:02:31 -070046 * Retrieves all messages currently stored on ICC.
47 * @param subId the subId id.
48 * @return list of SmsRawData of all sms on ICC
49 */
Wink Savillebc027272014-09-08 14:50:58 -070050 List<SmsRawData> getAllMessagesFromIccEfForSubscriber(in long subId, String callingPkg);
Wink Savillefb40dd42014-06-12 17:02:31 -070051
52 /**
Wink Saville5a725532013-02-07 17:03:05 -080053 * Update the specified message on the ICC.
54 *
55 * @param messageIndex record index of message to update
56 * @param newStatus new message status (STATUS_ON_ICC_READ,
57 * STATUS_ON_ICC_UNREAD, STATUS_ON_ICC_SENT,
58 * STATUS_ON_ICC_UNSENT, STATUS_ON_ICC_FREE)
59 * @param pdu the raw PDU to store
60 * @return success or not
61 *
62 */
63 boolean updateMessageOnIccEf(String callingPkg, int messageIndex, int newStatus,
64 in byte[] pdu);
65
66 /**
Wink Savillefb40dd42014-06-12 17:02:31 -070067 * Update the specified message on the ICC.
68 *
69 * @param messageIndex record index of message to update
70 * @param newStatus new message status (STATUS_ON_ICC_READ,
71 * STATUS_ON_ICC_UNREAD, STATUS_ON_ICC_SENT,
72 * STATUS_ON_ICC_UNSENT, STATUS_ON_ICC_FREE)
73 * @param pdu the raw PDU to store
74 * @param subId the subId id.
75 * @return success or not
76 *
77 */
Wink Savillebc027272014-09-08 14:50:58 -070078 boolean updateMessageOnIccEfForSubscriber(in long subId, String callingPkg,
Wink Savillefb40dd42014-06-12 17:02:31 -070079 int messageIndex, int newStatus, in byte[] pdu);
80
81 /**
Wink Saville5a725532013-02-07 17:03:05 -080082 * Copy a raw SMS PDU to the ICC.
83 *
84 * @param pdu the raw PDU to store
85 * @param status message status (STATUS_ON_ICC_READ, STATUS_ON_ICC_UNREAD,
86 * STATUS_ON_ICC_SENT, STATUS_ON_ICC_UNSENT)
87 * @return success or not
88 *
89 */
90 boolean copyMessageToIccEf(String callingPkg, int status, in byte[] pdu, in byte[] smsc);
91
92 /**
Wink Savillefb40dd42014-06-12 17:02:31 -070093 * Copy a raw SMS PDU to the ICC.
94 *
95 * @param pdu the raw PDU to store
96 * @param status message status (STATUS_ON_ICC_READ, STATUS_ON_ICC_UNREAD,
97 * STATUS_ON_ICC_SENT, STATUS_ON_ICC_UNSENT)
98 * @param subId the subId id.
99 * @return success or not
100 *
101 */
Wink Savillebc027272014-09-08 14:50:58 -0700102 boolean copyMessageToIccEfForSubscriber(in long subId, String callingPkg, int status,
Wink Savillefb40dd42014-06-12 17:02:31 -0700103 in byte[] pdu, in byte[] smsc);
104
105 /**
Wink Saville5a725532013-02-07 17:03:05 -0800106 * Send a data SMS.
107 *
108 * @param smsc the SMSC to send the message through, or NULL for the
109 * default SMSC
110 * @param data the body of the message to send
111 * @param sentIntent if not NULL this <code>PendingIntent</code> is
112 * broadcast when the message is sucessfully sent, or failed.
113 * The result code will be <code>Activity.RESULT_OK<code> for success,
114 * or one of these errors:<br>
115 * <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
116 * <code>RESULT_ERROR_RADIO_OFF</code><br>
117 * <code>RESULT_ERROR_NULL_PDU</code><br>
118 * For <code>RESULT_ERROR_GENERIC_FAILURE</code> the sentIntent may include
119 * the extra "errorCode" containing a radio technology specific value,
120 * generally only useful for troubleshooting.<br>
121 * The per-application based SMS control checks sentIntent. If sentIntent
122 * is NULL the caller will be checked against all unknown applicaitons,
123 * which cause smaller number of SMS to be sent in checking period.
124 * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
125 * broadcast when the message is delivered to the recipient. The
126 * raw pdu of the status report is in the extended data ("pdu").
127 */
128 void sendData(String callingPkg, in String destAddr, in String scAddr, in int destPort,
129 in byte[] data, in PendingIntent sentIntent, in PendingIntent deliveryIntent);
130
131 /**
Wink Savillefb40dd42014-06-12 17:02:31 -0700132 * Send a data SMS.
133 *
134 * @param smsc the SMSC to send the message through, or NULL for the
135 * default SMSC
136 * @param data the body of the message to send
137 * @param sentIntent if not NULL this <code>PendingIntent</code> is
138 * broadcast when the message is sucessfully sent, or failed.
139 * The result code will be <code>Activity.RESULT_OK<code> for success,
140 * or one of these errors:<br>
141 * <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
142 * <code>RESULT_ERROR_RADIO_OFF</code><br>
143 * <code>RESULT_ERROR_NULL_PDU</code><br>
144 * For <code>RESULT_ERROR_GENERIC_FAILURE</code> the sentIntent may include
145 * the extra "errorCode" containing a radio technology specific value,
146 * generally only useful for troubleshooting.<br>
147 * The per-application based SMS control checks sentIntent. If sentIntent
148 * is NULL the caller will be checked against all unknown applicaitons,
149 * which cause smaller number of SMS to be sent in checking period.
150 * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
151 * broadcast when the message is delivered to the recipient. The
152 * raw pdu of the status report is in the extended data ("pdu").
153 * @param subId the subId id.
154 */
Wink Savillebc027272014-09-08 14:50:58 -0700155 void sendDataForSubscriber(long subId, String callingPkg, in String destAddr,
Wink Savillefb40dd42014-06-12 17:02:31 -0700156 in String scAddr, in int destPort, in byte[] data, in PendingIntent sentIntent,
157 in PendingIntent deliveryIntent);
158
159 /**
Wink Saville5a725532013-02-07 17:03:05 -0800160 * Send an SMS.
161 *
162 * @param smsc the SMSC to send the message through, or NULL for the
163 * default SMSC
164 * @param text the body of the message to send
165 * @param sentIntent if not NULL this <code>PendingIntent</code> is
166 * broadcast when the message is sucessfully sent, or failed.
167 * The result code will be <code>Activity.RESULT_OK<code> for success,
168 * or one of these errors:<br>
169 * <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
170 * <code>RESULT_ERROR_RADIO_OFF</code><br>
171 * <code>RESULT_ERROR_NULL_PDU</code><br>
172 * For <code>RESULT_ERROR_GENERIC_FAILURE</code> the sentIntent may include
173 * the extra "errorCode" containing a radio technology specific value,
174 * generally only useful for troubleshooting.<br>
175 * The per-application based SMS control checks sentIntent. If sentIntent
176 * is NULL the caller will be checked against all unknown applications,
177 * which cause smaller number of SMS to be sent in checking period.
178 * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
179 * broadcast when the message is delivered to the recipient. The
180 * raw pdu of the status report is in the extended data ("pdu").
181 */
182 void sendText(String callingPkg, in String destAddr, in String scAddr, in String text,
183 in PendingIntent sentIntent, in PendingIntent deliveryIntent);
184
185 /**
Wink Savillefb40dd42014-06-12 17:02:31 -0700186 * Send an SMS.
187 *
188 * @param smsc the SMSC to send the message through, or NULL for the
189 * default SMSC
190 * @param text the body of the message to send
191 * @param sentIntent if not NULL this <code>PendingIntent</code> is
192 * broadcast when the message is sucessfully sent, or failed.
193 * The result code will be <code>Activity.RESULT_OK<code> for success,
194 * or one of these errors:<br>
195 * <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
196 * <code>RESULT_ERROR_RADIO_OFF</code><br>
197 * <code>RESULT_ERROR_NULL_PDU</code><br>
198 * For <code>RESULT_ERROR_GENERIC_FAILURE</code> the sentIntent may include
199 * the extra "errorCode" containing a radio technology specific value,
200 * generally only useful for troubleshooting.<br>
201 * The per-application based SMS control checks sentIntent. If sentIntent
202 * is NULL the caller will be checked against all unknown applications,
203 * which cause smaller number of SMS to be sent in checking period.
204 * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
205 * broadcast when the message is delivered to the recipient. The
206 * raw pdu of the status report is in the extended data ("pdu").
207 * @param subId the subId on which the SMS has to be sent.
208 */
Wink Savillebc027272014-09-08 14:50:58 -0700209 void sendTextForSubscriber(in long subId, String callingPkg, in String destAddr,
Wink Savillefb40dd42014-06-12 17:02:31 -0700210 in String scAddr, in String text, in PendingIntent sentIntent,
211 in PendingIntent deliveryIntent);
212
213 /**
Anil Muthineni5d3c5fc2014-06-03 10:44:31 -0700214 * Inject an SMS PDU into the android platform.
215 *
216 * @param pdu is the byte array of pdu to be injected into android application framework
217 * @param format is the format of SMS pdu (android.telephony.SmsMessage.FORMAT_3GPP or
218 * android.telephony.SmsMessage.FORMAT_3GPP2)
219 * @param receivedIntent if not NULL this <code>PendingIntent</code> is
220 * broadcast when the message is successfully received by the
221 * android application framework. This intent is broadcasted at
222 * the same time an SMS received from radio is acknowledged back.
223 */
224 void injectSmsPdu(in byte[] pdu, String format, in PendingIntent receivedIntent);
225
226 /**
Cheuksan Wang87487462014-06-13 19:12:20 -0700227 * Update the status of a pending (send-by-IP) SMS message and resend by PSTN if necessary.
228 * This outbound message was handled by the carrier app. If the carrier app fails to send
229 * this message, it would be resent by PSTN.
230 *
231 * @param messageRef the reference number of the SMS message.
232 * @param success True if and only if the message was sent successfully. If its value is
233 * false, this message should be resent via PSTN.
234 */
235 void updateSmsSendStatus(int messageRef, boolean success);
236
237 /**
Wink Saville5a725532013-02-07 17:03:05 -0800238 * Send a multi-part text based SMS.
239 *
240 * @param destinationAddress the address to send the message to
241 * @param scAddress is the service center address or null to use
242 * the current default SMSC
243 * @param parts an <code>ArrayList</code> of strings that, in order,
244 * comprise the original message
245 * @param sentIntents if not null, an <code>ArrayList</code> of
246 * <code>PendingIntent</code>s (one for each message part) that is
247 * broadcast when the corresponding message part has been sent.
248 * The result code will be <code>Activity.RESULT_OK<code> for success,
249 * or one of these errors:
250 * <code>RESULT_ERROR_GENERIC_FAILURE</code>
251 * <code>RESULT_ERROR_RADIO_OFF</code>
252 * <code>RESULT_ERROR_NULL_PDU</code>.
253 * @param deliveryIntents if not null, an <code>ArrayList</code> of
254 * <code>PendingIntent</code>s (one for each message part) that is
255 * broadcast when the corresponding message part has been delivered
256 * to the recipient. The raw pdu of the status report is in the
257 * extended data ("pdu").
258 */
259 void sendMultipartText(String callingPkg, in String destinationAddress, in String scAddress,
260 in List<String> parts, in List<PendingIntent> sentIntents,
261 in List<PendingIntent> deliveryIntents);
262
263 /**
Wink Savillefb40dd42014-06-12 17:02:31 -0700264 * Send a multi-part text based SMS.
265 *
266 * @param destinationAddress the address to send the message to
267 * @param scAddress is the service center address or null to use
268 * the current default SMSC
269 * @param parts an <code>ArrayList</code> of strings that, in order,
270 * comprise the original message
271 * @param sentIntents if not null, an <code>ArrayList</code> of
272 * <code>PendingIntent</code>s (one for each message part) that is
273 * broadcast when the corresponding message part has been sent.
274 * The result code will be <code>Activity.RESULT_OK<code> for success,
275 * or one of these errors:
276 * <code>RESULT_ERROR_GENERIC_FAILURE</code>
277 * <code>RESULT_ERROR_RADIO_OFF</code>
278 * <code>RESULT_ERROR_NULL_PDU</code>.
279 * @param deliveryIntents if not null, an <code>ArrayList</code> of
280 * <code>PendingIntent</code>s (one for each message part) that is
281 * broadcast when the corresponding message part has been delivered
282 * to the recipient. The raw pdu of the status report is in the
283 * extended data ("pdu").
284 * @param subId the subId on which the SMS has to be sent.
285 */
Wink Savillebc027272014-09-08 14:50:58 -0700286 void sendMultipartTextForSubscriber(in long subId, String callingPkg,
Wink Savillefb40dd42014-06-12 17:02:31 -0700287 in String destinationAddress, in String scAddress,
288 in List<String> parts, in List<PendingIntent> sentIntents,
289 in List<PendingIntent> deliveryIntents);
290
291 /**
Wink Saville5a725532013-02-07 17:03:05 -0800292 * Enable reception of cell broadcast (SMS-CB) messages with the given
293 * message identifier. Note that if two different clients enable the same
294 * message identifier, they must both disable it for the device to stop
295 * receiving those messages.
296 *
297 * @param messageIdentifier Message identifier as specified in TS 23.041 (3GPP) or
298 * C.R1001-G (3GPP2)
299 * @return true if successful, false otherwise
300 *
301 * @see #disableCellBroadcast(int)
302 */
303 boolean enableCellBroadcast(int messageIdentifier);
304
305 /**
Wink Savillefb40dd42014-06-12 17:02:31 -0700306 * Enable reception of cell broadcast (SMS-CB) messages with the given
307 * message identifier. Note that if two different clients enable the same
308 * message identifier, they must both disable it for the device to stop
309 * receiving those messages.
310 *
311 * @param messageIdentifier Message identifier as specified in TS 23.041 (3GPP) or
312 * C.R1001-G (3GPP2)
313 * @param subId for which the broadcast has to be enabled
314 * @return true if successful, false otherwise
315 *
316 * @see #disableCellBroadcast(int)
317 */
Wink Savillebc027272014-09-08 14:50:58 -0700318 boolean enableCellBroadcastForSubscriber(in long subId, int messageIdentifier);
Wink Savillefb40dd42014-06-12 17:02:31 -0700319
320 /**
Wink Saville5a725532013-02-07 17:03:05 -0800321 * Disable reception of cell broadcast (SMS-CB) messages with the given
322 * message identifier. Note that if two different clients enable the same
323 * message identifier, they must both disable it for the device to stop
324 * receiving those messages.
325 *
326 * @param messageIdentifier Message identifier as specified in TS 23.041 (3GPP) or
327 * C.R1001-G (3GPP2)
328 * @return true if successful, false otherwise
329 *
330 * @see #enableCellBroadcast(int)
331 */
332 boolean disableCellBroadcast(int messageIdentifier);
333
Wink Savillefb40dd42014-06-12 17:02:31 -0700334 /**
335 * Disable reception of cell broadcast (SMS-CB) messages with the given
336 * message identifier. Note that if two different clients enable the same
337 * message identifier, they must both disable it for the device to stop
338 * receiving those messages.
339 *
340 * @param messageIdentifier Message identifier as specified in TS 23.041 (3GPP) or
341 * C.R1001-G (3GPP2)
342 * @param subId for which the broadcast has to be disabled
343 * @return true if successful, false otherwise
344 *
345 * @see #enableCellBroadcast(int)
346 */
Wink Savillebc027272014-09-08 14:50:58 -0700347 boolean disableCellBroadcastForSubscriber(in long subId, int messageIdentifier);
Wink Savillefb40dd42014-06-12 17:02:31 -0700348
Wink Saville5a725532013-02-07 17:03:05 -0800349 /*
350 * Enable reception of cell broadcast (SMS-CB) messages with the given
351 * message identifier range. Note that if two different clients enable
352 * a message identifier range, they must both disable it for the device
353 * to stop receiving those messages.
354 *
355 * @param startMessageId first message identifier as specified in TS 23.041 (3GPP) or
356 * C.R1001-G (3GPP2)
357 * @param endMessageId last message identifier as specified in TS 23.041 (3GPP) or
358 * C.R1001-G (3GPP2)
359 * @return true if successful, false otherwise
360 *
361 * @see #disableCellBroadcastRange(int, int)
362 */
363 boolean enableCellBroadcastRange(int startMessageId, int endMessageId);
364
Wink Savillefb40dd42014-06-12 17:02:31 -0700365 /*
366 * Enable reception of cell broadcast (SMS-CB) messages with the given
367 * message identifier range. Note that if two different clients enable
368 * a message identifier range, they must both disable it for the device
369 * to stop receiving those messages.
370 *
371 * @param startMessageId first message identifier as specified in TS 23.041 (3GPP) or
372 * C.R1001-G (3GPP2)
373 * @param endMessageId last message identifier as specified in TS 23.041 (3GPP) or
374 * C.R1001-G (3GPP2)
375 * @param subId for which the broadcast has to be enabled
376 * @return true if successful, false otherwise
377 *
378 * @see #disableCellBroadcastRange(int, int)
379 */
Wink Savillebc027272014-09-08 14:50:58 -0700380 boolean enableCellBroadcastRangeForSubscriber(long subId, int startMessageId, int endMessageId);
Wink Savillefb40dd42014-06-12 17:02:31 -0700381
Wink Saville5a725532013-02-07 17:03:05 -0800382 /**
383 * Disable reception of cell broadcast (SMS-CB) messages with the given
384 * message identifier range. Note that if two different clients enable
385 * a message identifier range, they must both disable it for the device
386 * to stop receiving those messages.
387 *
388 * @param startMessageId first message identifier as specified in TS 23.041 (3GPP) or
389 * C.R1001-G (3GPP2)
390 * @param endMessageId last message identifier as specified in TS 23.041 (3GPP) or
391 * C.R1001-G (3GPP2)
392 * @return true if successful, false otherwise
393 *
394 * @see #enableCellBroadcastRange(int, int)
395 */
396 boolean disableCellBroadcastRange(int startMessageId, int endMessageId);
397
398 /**
Wink Savillefb40dd42014-06-12 17:02:31 -0700399 * Disable reception of cell broadcast (SMS-CB) messages with the given
400 * message identifier range. Note that if two different clients enable
401 * a message identifier range, they must both disable it for the device
402 * to stop receiving those messages.
403 *
404 * @param startMessageId first message identifier as specified in TS 23.041 (3GPP) or
405 * C.R1001-G (3GPP2)
406 * @param endMessageId last message identifier as specified in TS 23.041 (3GPP) or
407 * C.R1001-G (3GPP2)
408 * @param subId for which the broadcast has to be disabled
409 * @return true if successful, false otherwise
410 *
411 * @see #enableCellBroadcastRange(int, int, int)
412 */
Wink Savillebc027272014-09-08 14:50:58 -0700413 boolean disableCellBroadcastRangeForSubscriber(long subId, int startMessageId,
Wink Savillefb40dd42014-06-12 17:02:31 -0700414 int endMessageId);
415
416 /**
Wink Saville5a725532013-02-07 17:03:05 -0800417 * Returns the premium SMS send permission for the specified package.
418 * Requires system permission.
419 */
420 int getPremiumSmsPermission(String packageName);
421
422 /**
Wink Savillefb40dd42014-06-12 17:02:31 -0700423 * Returns the premium SMS send permission for the specified package.
424 * Requires system permission.
425 */
Wink Savillebc027272014-09-08 14:50:58 -0700426 int getPremiumSmsPermissionForSubscriber(long subId, String packageName);
Wink Savillefb40dd42014-06-12 17:02:31 -0700427
428 /**
Wink Saville5a725532013-02-07 17:03:05 -0800429 * Set the SMS send permission for the specified package.
430 * Requires system permission.
431 */
432 void setPremiumSmsPermission(String packageName, int permission);
Rika Brooks140ae7b2012-08-07 14:51:19 -0700433
434 /**
Wink Savillefb40dd42014-06-12 17:02:31 -0700435 * Set the SMS send permission for the specified package.
436 * Requires system permission.
437 */
438 /**
439 * Set the SMS send permission for the specified package.
440 * Requires system permission.
441 */
Wink Savillebc027272014-09-08 14:50:58 -0700442 void setPremiumSmsPermissionForSubscriber(long subId, String packageName, int permission);
Wink Savillefb40dd42014-06-12 17:02:31 -0700443
444 /**
Rika Brooks140ae7b2012-08-07 14:51:19 -0700445 * SMS over IMS is supported if IMS is registered and SMS is supported
446 * on IMS.
447 *
448 * @return true if SMS over IMS is supported, false otherwise
449 *
450 * @see #getImsSmsFormat()
451 */
452 boolean isImsSmsSupported();
453
454 /**
Wink Savillefb40dd42014-06-12 17:02:31 -0700455 * SMS over IMS is supported if IMS is registered and SMS is supported
456 * on IMS.
457 * @param subId for subId which isImsSmsSupported is queried
458 * @return true if SMS over IMS is supported, false otherwise
459 *
460 * @see #getImsSmsFormat()
461 */
Wink Savillebc027272014-09-08 14:50:58 -0700462 boolean isImsSmsSupportedForSubscriber(long subId);
Wink Savillefb40dd42014-06-12 17:02:31 -0700463
464 /*
465 * get user prefered SMS subId
466 * @return subId id
467 */
468 long getPreferredSmsSubscription();
469
Wink Savillefb40dd42014-06-12 17:02:31 -0700470 /**
Rika Brooks140ae7b2012-08-07 14:51:19 -0700471 * Gets SMS format supported on IMS. SMS over IMS format is
472 * either 3GPP or 3GPP2.
473 *
474 * @return android.telephony.SmsMessage.FORMAT_3GPP,
475 * android.telephony.SmsMessage.FORMAT_3GPP2
476 * or android.telephony.SmsMessage.FORMAT_UNKNOWN
477 *
478 * @see #isImsSmsSupported()
479 */
480 String getImsSmsFormat();
Wink Savillefb40dd42014-06-12 17:02:31 -0700481
482 /**
483 * Gets SMS format supported on IMS. SMS over IMS format is
484 * either 3GPP or 3GPP2.
485 * @param subId for subId which getImsSmsFormat is queried
486 * @return android.telephony.SmsMessage.FORMAT_3GPP,
487 * android.telephony.SmsMessage.FORMAT_3GPP2
488 * or android.telephony.SmsMessage.FORMAT_UNKNOWN
489 *
490 * @see #isImsSmsSupported()
491 */
Wink Savillebc027272014-09-08 14:50:58 -0700492 String getImsSmsFormatForSubscriber(long subId);
Wink Savillefb40dd42014-06-12 17:02:31 -0700493
Wink Savillefb40dd42014-06-12 17:02:31 -0700494 /*
495 * Get SMS prompt property, enabled or not
496 * @return true if enabled, false otherwise
497 */
498 boolean isSMSPromptEnabled();
Ye Wen295f2192014-07-09 16:51:49 -0700499
500 /**
501 * Send a system stored text message.
502 *
503 * This is used for sending a previously sent, but failed-to-send, message or
504 * for sending a text message that has been stored as a draft.
505 *
506 * @param subId the SIM id.
507 * @param callingPkg the package name of the calling app
508 * @param messageUri the URI of the stored message
509 * @param scAddress is the service center address or null to use the current default SMSC
510 * @param sentIntent if not NULL this <code>PendingIntent</code> is
511 * broadcast when the message is successfully sent, or failed.
512 * The result code will be <code>Activity.RESULT_OK</code> for success,
513 * or one of these errors:<br>
514 * <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
515 * <code>RESULT_ERROR_RADIO_OFF</code><br>
516 * <code>RESULT_ERROR_NULL_PDU</code><br>
517 * For <code>RESULT_ERROR_GENERIC_FAILURE</code> the sentIntent may include
518 * the extra "errorCode" containing a radio technology specific value,
519 * generally only useful for troubleshooting.<br>
520 * The per-application based SMS control checks sentIntent. If sentIntent
521 * is NULL the caller will be checked against all unknown applications,
522 * which cause smaller number of SMS to be sent in checking period.
523 * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
524 * broadcast when the message is delivered to the recipient. The
525 * raw pdu of the status report is in the extended data ("pdu").
526 */
527 void sendStoredText(long subId, String callingPkg, in Uri messageUri, String scAddress,
528 in PendingIntent sentIntent, in PendingIntent deliveryIntent);
529
530 /**
531 * Send a system stored multi-part text message.
532 *
533 * This is used for sending a previously sent, but failed-to-send, message or
534 * for sending a text message that has been stored as a draft.
535 * The provided <code>PendingIntent</code> lists should match the part number of the
536 * divided text of the stored message by using <code>divideMessage</code>
537 *
538 * @param subId the SIM id.
539 * @param callingPkg the package name of the calling app
540 * @param messageUri the URI of the stored message
541 * @param scAddress is the service center address or null to use
542 * the current default SMSC
543 * @param sentIntents if not null, an <code>ArrayList</code> of
544 * <code>PendingIntent</code>s (one for each message part) that is
545 * broadcast when the corresponding message part has been sent.
546 * The result code will be <code>Activity.RESULT_OK</code> for success,
547 * or one of these errors:<br>
548 * <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
549 * <code>RESULT_ERROR_RADIO_OFF</code><br>
550 * <code>RESULT_ERROR_NULL_PDU</code><br>
551 * For <code>RESULT_ERROR_GENERIC_FAILURE</code> each sentIntent may include
552 * the extra "errorCode" containing a radio technology specific value,
553 * generally only useful for troubleshooting.<br>
554 * The per-application based SMS control checks sentIntent. If sentIntent
555 * is NULL the caller will be checked against all unknown applications,
556 * which cause smaller number of SMS to be sent in checking period.
557 * @param deliveryIntents if not null, an <code>ArrayList</code> of
558 * <code>PendingIntent</code>s (one for each message part) that is
559 * broadcast when the corresponding message part has been delivered
560 * to the recipient. The raw pdu of the status report is in the
561 * extended data ("pdu").
562 */
563 void sendStoredMultipartText(long subId, String callingPkg, in Uri messageUri,
564 String scAddress, in List<PendingIntent> sentIntents,
565 in List<PendingIntent> deliveryIntents);
Wink Saville5a725532013-02-07 17:03:05 -0800566}