* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package triana.novi.midlet;
import java.io.IOException;
import javax.microedition.midlet.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.wireless.messaging.Message;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.MessageListener;
import javax.wireless.messaging.TextMessage;
public class RecieveMessage extends MIDlet
implements CommandListener, Runnable, MessageListener {
private Display display;
private Alert alert;
private TextBox tfPesan;
private Thread thread;
private MessageConnection conn;
private Message pesan;
private String[] daftarKoneksi;
private boolean selesaiProses;
private String port;
private final Command cmdKeluar = new Command("Keluar", Command.EXIT, 1);
public RecieveMessage() {
port = getAppProperty("Port-SMS");
display = Display.getDisplay(this);
alert = new Alert("Terima SMS");
alert.setTimeout(Alert.FOREVER);
alert.addCommand(cmdKeluar);
alert.setCommandListener(this);
tfPesan = new TextBox(null, null, 500, TextField.ANY);
tfPesan.addCommand(cmdKeluar);
tfPesan.setCommandListener(this);
}
public void startApp() {
String alamatKoneksi = "sms://:" + port;
if (conn == null) {
try {
conn = (MessageConnection) Connector.open(alamatKoneksi);
conn.setMessageListener(this);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
daftarKoneksi = javax.microedition.io.PushRegistry.listConnections(true);
if (daftarKoneksi == null || daftarKoneksi.length== 0) {
alert.setString("Menunggu SMS pada port" + port + "...");
}
startNewThread();
display.setCurrent(alert);
}
public void pauseApp() {
selesaiProses = true;
thread = null;
}
public void destroyApp(boolean unconditional) {
selesaiProses = true;
thread = null;
if (conn != null) {
try {
conn.close();
} catch (IOException e) {
}
}
}
public void commandAction(Command c, Displayable s) {
if (c == cmdKeluar || c == Alert.DISMISS_COMMAND) {
destroyApp(false);
notifyDestroyed();
}
}
// method ini ada karena kia mengimplementasikan
// interface Runnable
public void run() {
try {
pesan = conn.receive();
if (pesan != null) {
String alamatPengirim = pesan.getAddress();
tfPesan.setTitle("Pesan dari:" + alamatPengirim.substring(6));
if (pesan instanceof TextMessage) {
TextMessage pesanTeks = (TextMessage) pesan;
tfPesan.setString(pesanTeks.getPayloadText());
}
display.setCurrent(tfPesan);
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
// method ini ada karena kita mengimplementasikan
// interface MessageListener
public void notifyIncomingMessage(MessageConnection conn) {
if (thread == null) {
startNewThread();
}
}
public void startNewThread() {
selesaiProses = false;
thread = new Thread(this);
thread.start();
}
}
Tidak ada komentar:
Posting Komentar