I found this code online from the Jimmy blog , and it works great. You can try it on your own,
SMSSender.java
public class SMSSender extends MIDlet implements CommandListener { private Form formSender = new Form("SMS Sender"); private TextField tfDestination = new TextField("Destination", "", 20, TextField.PHONENUMBER); private TextField tfPort = new TextField("Port", "50000", 6, TextField.NUMERIC); private TextField tfMessage = new TextField("Message", "message", 150, TextField.ANY); private Command cmdSend = new Command("Send", Command.OK, 1); private Command cmdExit = new Command("Exit", Command.EXIT, 1); private Display display; public SMSSender() { formSender.append(tfDestination); formSender.append(tfPort); formSender.append(tfMessage); formSender.addCommand(cmdSend); formSender.addCommand(cmdExit); formSender.setCommandListener(this); display = Display.getDisplay(this); } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { display.setCurrent(formSender); } public void commandAction(Command c, Displayable d) { if (c==cmdSend) { SendMessage.execute(tfDestination.getString(), tfPort.getString(), tfMessage.getString()); } else if (c==cmdExit) { notifyDestroyed(); } } } class SendMessage { public static void execute(final String destination, final String port, final String message) { Thread thread = new Thread(new Runnable() { public void run() { MessageConnection msgConnection; try { msgConnection = (MessageConnection)Connector.open("sms://"+destination+":" + port); TextMessage textMessage = (TextMessage)msgConnection.newMessage( MessageConnection.TEXT_MESSAGE); textMessage.setPayloadText(message); msgConnection.send(textMessage); msgConnection.close(); } catch (IOException e) { e.printStackTrace(); } } }); thread.start(); } }
SMSReceiver.java
public class SMSReceiver extends MIDlet implements CommandListener, MessageListener { private Form formReceiver = new Form("SMS Receiver"); private TextField tfPort = new TextField("Port", "50000", 6, TextField.NUMERIC); private Command cmdListen = new Command("Listen", Command.OK, 1); private Command cmdExit = new Command("Exit", Command.EXIT, 1); private Display display; public SMSReceiver() { formReceiver.append(tfPort); formReceiver.addCommand(cmdListen); formReceiver.addCommand(cmdExit); formReceiver.setCommandListener(this); display = Display.getDisplay(this); } protected void destroyApp(boolean unconditional) throws MIDletStateChangeException { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { display.setCurrent(formReceiver); } public void commandAction(Command c, Displayable d) { if (c==cmdListen) { ListenSMS sms = new ListenSMS(tfPort.getString(), this); sms.start(); formReceiver.removeCommand(cmdListen); } else if (c==cmdExit) { notifyDestroyed(); } } public void notifyIncomingMessage(MessageConnection conn) { Message message; try { message = conn.receive(); if (message instanceof TextMessage) { TextMessage tMessage = (TextMessage)message; formReceiver.append("Message received : "+tMessage.getPayloadText()+"\n"); } else { formReceiver.append("Unknown Message received\n"); } } catch (InterruptedIOException e) { e.printStackTrace(); } catch (IOException e) {
source share