📄 receivesmsmsg.java
字号:
import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.wireless.messaging.Message;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.MessageListener;
import javax.wireless.messaging.TextMessage;
public class ReceiveSMSMsg extends MIDlet
implements CommandListener,MessageListener {
private Display display = null;
/** 退出命令按钮 */
private Command cmdExit = new Command("退出", Command.EXIT, 1);
/** 否阅读消息 */
private Command cmdRead = new Command("阅读", Command.SCREEN, 1);
/** 返回 */
private Command cmdBack = new Command("返回", Command.BACK, 1);
private Form form = new Form("接收文本信息");
/** 用于接收消息 */
private MessageConnection mc;
public ReceiveSMSMsg() {
super();
form.addCommand(cmdExit);
form.setCommandListener(this);
}
protected void startApp() throws MIDletStateChangeException {
display = Display.getDisplay(this);
display.setCurrent(form);
//启动消息监听
startMsgListener();
}
protected void pauseApp() {
close();
}
protected void destroyApp(boolean arg0)
throws MIDletStateChangeException {
close();
}
private void close() {
try {
mc.setMessageListener(null);
mc.close();
} catch (IOException e) {
e.printStackTrace();
}
mc =null;
}
private void startMsgListener() {
try {
mc = (MessageConnection)Connector.open
("sms://:5008");
//注册消息监听器.
mc.setMessageListener(this);
} catch (Exception e) {
System.out.println("不能进行接收消息连接:" + e.toString());
}
}
/**
* 处理命令按钮事件
*/
public void commandAction(Command c, Displayable s) {
if (c == cmdExit) {
notifyDestroyed();
} else if (c == cmdRead) {
//在独立的线程中接收消息
new Thread() {
public void run() {
Message msg=null;
try {
msg = mc.receive();
} catch (IOException e) {
//处理读取消息时发生的错误
System.out.println("读取消息时发生异常:" +
e.toString());
}
//处理读取的文本消息
if ((msg != null) && (msg instanceof TextMessage)) {
TextMessage tmsg = (TextMessage)msg;
form.append("接收到一条消息,接收时间:" +
tmsg.getTimestamp().toString() + "\n");
form.append("消息发送方:" + tmsg.getAddress() + "\n");
form.append("消息内容:" + tmsg.getPayloadText());
}
display.setCurrent(form);
}
}.start();
} else if (c == cmdBack) {
display.setCurrent(form);
}
}
/**
* 当有消息到达时执行该函数
*/
public void notifyIncomingMessage(MessageConnection mc) {
if (this.mc == mc) {
Alert alert = new Alert("收到新消息",
"是否阅读?", null,
AlertType.CONFIRMATION);
alert.addCommand(cmdBack);
alert.addCommand(cmdRead);
alert.setCommandListener(this);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert, form);
AlertType.CONFIRMATION.playSound(display);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -