import Java.io.IOException;import Javax.microedition.midlet.*;import Javax.microedition.io.*;import Javax.wireless.messaging.*; public class Example extends MIDlet implements MessageListener { MessageConnection messconn; int total = 0; boolean done; // Initial tests setup and execution. public void startApp() { try { // Get our receiving port conection. messconn = (MessageConnection) Connector.open("sms://:6222"); // Register a listener for inbound messages. messconn.setMessageListener(this); // Start a message-reading thread. done = false; new Thread(new Reader()).start(); } catch (IOException e) { // Handle startup errors } } // Asynchronous callback for inbound message. public void notifyIncomingMessage(MessageConnection conn) { if (conn == messconn) { total++; }
} // Required MIDlet method - release the connection and // signal the reader thread to terminate. public void pauseApp() { done = true; try { messconn.close(); } catch (IOException e) { // Handle errors } } // Required MIDlet method - shutdown. // @param unconditional forced shutdown flag public void destroyApp(boolean unconditional) { done = true; try { messconn.setMessageListener(null); messconn.close(); } catch (IOException e) { // Handle shutdown errors. } } // Isolate blocking I/O on a separate thread, so callback // can return immediately. class Reader implements Runnable { // The run method performs the actual message reading. public void run() { while (!done) { try { Message mess = messconn.receive(); } catch ( IOException ioe) { // Handle reading errors } } } }}