import javax.wireless.messaging.*; import javax.microedition.io.Connector; class SmsSender extends Thread { String phoneNo; int port; String textData; byte[] binaryData; Runnable listener; Exception exception; SmsSender(String phoneNo, String text) { this.phoneNo = phoneNo; this.port = 0; this.textData = text; } SmsSender(String phoneNo, int port, byte[] data) { this.phoneNo = phoneNo; this.port = port; this.binaryData = data; } void setListener(Runnable listener) { this.listener = listener; } public void run() { try { MessageConnection conn = null; Message msg = null; if (port == 0) { String dest = "sms://" + phoneNo; conn = (MessageConnection) Connector.open(dest); TextMessage textMsg = (TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE); textMsg.setPayloadText(textData); msg = textMsg; } else { String dest = "sms://" + phoneNo + ':' + port; conn = (MessageConnection) Connector.open(dest); BinaryMessage binMsg = (BinaryMessage) conn.newMessage(MessageConnection.BINARY_MESSAGE); binMsg.setPayloadData(binaryData); msg = binMsg; } conn.send(msg); conn.close(); //display.setCurrent(new Alert(L.s[75], L.s[75], null, AlertType.CONFIRMATION), dateCanvas); } catch (Exception e) { //display.setCurrent(new Alert(L.s[76], ""+e, null, AlertType.ERROR), dateCanvas); //System.out.println("sms " + e); exception = e; } if (listener != null) { M.callSerially(listener); } } }