/* * Copyright (C) 2008 Esmertec AG. * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.im.engine; /** * An abstract interface to access system SMS service. */ public interface SmsService { public static final String ANY_ADDRESS = "*"; /** * The listener which will be notified when an incoming SMS is received. * */ public interface SmsListener { /** * Called on new SMS received. * * @param data */ public void onIncomingSms(byte[] data); } /** * Callback on send SMS failure. * */ public interface SmsSendFailureCallback { /** Generic failure case.*/ int ERROR_GENERIC_FAILURE = 1; /** Failed because radio was explicitly turned off.*/ int ERROR_RADIO_OFF = 2; /** * Called when send an SMS failed. * * @param errorCode the error code; will be one of * {@link #ERROR_GENERIC_FAILURE}, * {@link #ERROR_RADIO_OFF} */ public void onFailure(int errorCode); } /** * The max number of bytes an SMS can take. * * @return the max number of bytes an SMS can take. */ public int getMaxSmsLength(); /** * Sends a data SMS to the destination. * * @param dest * The address to send the message to. * @param port * The port to deliver the message to. * @param data * The body of the message to send. */ public void sendSms(String dest, int port, byte[] data); /** * Sends a data SMS to the destination. * * @param dest * The address to send the message to. * @param port * The port to deliver the message to. * @param data * The body of the message to send. * @param callback * If not null, it will be notified if the message could not be * sent. */ public void sendSms(String dest, int port, byte[] data, SmsSendFailureCallback callback); /** * Add a SmsListener so that it can be notified when new SMS from specific * address and application port has been received. * * @param from * The address of the sender. * @param port * The application port. * @param listener * The listener which will be notified when SMS received. */ public void addSmsListener(String from, int port, SmsListener listener); /** * Remove a SmsListener from the service so that it won't be notified * anymore. * * @param listener * The listener to be removed. */ public void removeSmsListener(SmsListener listener); }