• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2008 Esmertec AG.
3  * Copyright (C) 2008 The Android Open Source Project
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 package com.android.im.engine;
18 
19 /**
20  * An abstract interface to access system SMS service.
21  */
22 public interface SmsService {
23     public static final String ANY_ADDRESS = "*";
24 
25     /**
26      * The listener which will be notified when an incoming SMS is received.
27      *
28      */
29     public interface SmsListener {
30         /**
31          * Called on new SMS received.
32          *
33          * @param data
34          */
onIncomingSms(byte[] data)35         public void onIncomingSms(byte[] data);
36     }
37 
38     /**
39      * Callback on send SMS failure.
40      *
41      */
42     public interface SmsSendFailureCallback {
43         /** Generic failure case.*/
44         int ERROR_GENERIC_FAILURE = 1;
45         /** Failed because radio was explicitly turned off.*/
46         int ERROR_RADIO_OFF = 2;
47 
48         /**
49          * Called when send an SMS failed.
50          *
51          * @param errorCode the error code; will be one of
52          *            {@link #ERROR_GENERIC_FAILURE},
53          *            {@link #ERROR_RADIO_OFF}
54          */
onFailure(int errorCode)55         public void onFailure(int errorCode);
56     }
57 
58     /**
59      * The max number of bytes an SMS can take.
60      *
61      * @return the max number of bytes an SMS can take.
62      */
getMaxSmsLength()63     public int getMaxSmsLength();
64 
65     /**
66      * Sends a data SMS to the destination.
67      *
68      * @param dest
69      *            The address to send the message to.
70      * @param port
71      *            The port to deliver the message to.
72      * @param data
73      *            The body of the message to send.
74      */
sendSms(String dest, int port, byte[] data)75     public void sendSms(String dest, int port, byte[] data);
76 
77     /**
78      * Sends a data SMS to the destination.
79      *
80      * @param dest
81      *            The address to send the message to.
82      * @param port
83      *            The port to deliver the message to.
84      * @param data
85      *            The body of the message to send.
86      * @param callback
87      *            If not null, it will be notified if the message could not be
88      *            sent.
89      */
sendSms(String dest, int port, byte[] data, SmsSendFailureCallback callback)90     public void sendSms(String dest, int port, byte[] data,
91             SmsSendFailureCallback callback);
92 
93     /**
94      * Add a SmsListener so that it can be notified when new SMS from specific
95      * address and application port has been received.
96      *
97      * @param from
98      *            The address of the sender.
99      * @param port
100      *            The application port.
101      * @param listener
102      *            The listener which will be notified when SMS received.
103      */
addSmsListener(String from, int port, SmsListener listener)104     public void addSmsListener(String from, int port, SmsListener listener);
105 
106     /**
107      * Remove a SmsListener from the service so that it won't be notified
108      * anymore.
109      *
110      * @param listener
111      *            The listener to be removed.
112      */
removeSmsListener(SmsListener listener)113     public void removeSmsListener(SmsListener listener);
114 }
115