Отправка SMS сообщения из j2me мидлета


Здравствуйте, В данной статье описывается, как отправить SMS сообщение
программным способом из программы – мидлета. Используется Wireless Messaging API.

import javax.microedition.io.Connector;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.TextMessage;
public class smsClass extends MIDlet implements CommandListener {
  private TextBox textF; // Текстовое поле для ввода текста сообщений
  private TextField numF; // Текстовое поле для ввода номера сообщений
  private Display display; // Дисплей
  private Command next; // для перехода в режим ввода номера
  private Command send; // Отправляем сообщение
  private String getnum = ""// Переменная для хранения номера
  private String getmes = ""// Переменная для хранения сообщения
  public void startApp() {
    display = Display.getDisplay(this);
    next = new Command("Next", Command.OK, 1);
    textF = new TextBox("Введите текст sms",
                        "Hello World it SMS from Midlet!!!"100, TextField.ANY);
    textF.setCommandListener(this);
    textF.addCommand(next);
    display.setCurrent(textF);
  }
  public void pauseApp() {}
  public void destroyApp(boolean _boolean) {
    this.notifyDestroyed();
  }
  public void numberField() {
    Form form = new Form("Enter the number");
    //----------------------------------------------------------------//
    // Введите полный номер типа: +99890 и номер телефона все слитно!-//
    //----------------------------------------------------------------//
    numF = new TextField("Numer"""15, TextField.NUMERIC);
    send = new Command("Send SMS", Command.OK, 1);
    form.append(numF);
    form.setCommandListener(this);
    form.addCommand(send);
    display.setCurrent(form);
  }
  public void setSMS() {
    try {
      String addr = "sms://+" + getnum; // Строка адреса
      MessageConnection conn = (MessageConnection) Connector.open(addr);
      TextMessage msg = (TextMessage) conn.newMessage
                        (MessageConnection.TEXT_MESSAGE);
      msg.setPayloadText(getmes); // Ложим в обьект msg наше сообщение из getmes
      conn.send(msg); // Отправляем наше сообщение
    catch (Exception e) {}
  }
  public void commandAction(Command c, Displayable displayable) {
    if (next == c) { // Переходим в режим ввода номера
      numberField(); // вызываем метод
    }
    if (send == c) { // переходим в метод по отправке сообщений
      getnum = numF.getString(); // Берем данные из т. поля и ложим в getnum
      getmes = textF.getString(); // аналогично
      setSMS(); // зовем метод
    }
  }
}


Заключение

Данная статья основывается на базовых примерах
представленных в WTK. Сложности
с компиляцией и сборкой быть не должно. По поводу замечаний по данной статье
обращайтесь по адресу: msi_90@mail.ru