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
}
}
}
}
}