概述
短消息推送的目的是为了实现手机软件监听手机的某个端口,但是又不希望手机软件一直开启。实现消息推送之后。
当一条发送到固定端口的短消息发送到手机时,软件就能够监听到这条消息,然后自动开启软件,且可以获取到消息中的内容。
代码比较简单,关键是设置描述器中的属性。
SmsPushMIDlet.java
import java.io.IOException;
import java.io.InterruptedIOException;
import javax.microedition.io.Connector;
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 SmsPushMIDlet extends MIDlet implements MessageListener,
CommandListener {
private Display display;
private Form form;
private Command exitCommand;
private MessageConnection mc;
private String smsPort;
public SmsPushMIDlet() {
display = Display.getDisplay(this);
form = new Form("消息推送机制");
exitCommand = new Command("退出", Command.EXIT, 0);
smsPort = getAppProperty("SMS-Port");
String smsConnection = "sms://:" + smsPort;
if (mc == null) {
try {
mc = (MessageConnection) Connector.open(smsConnection);
mc.setMessageListener(this);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
form.addCommand(exitCommand);
form.setCommandListener(this);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
if (mc != null) {
try {
mc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
protected void pauseApp() {
if (mc != null) {
try {
mc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
protected void startApp() throws MIDletStateChangeException {
display.setCurrent(form);
}
public void notifyIncomingMessage(MessageConnection messageConnection) {
mc = messageConnection;
new Thread() {
public void run() {
Message message = null;
try {
message = mc.receive();
if (message != null && message instanceof TextMessage) {
TextMessage receivedMessage = (TextMessage) message;
String messageContent = receivedMessage
.getPayloadText();
form.append("推送内容:" + messageContent);
}
} catch (InterruptedIOException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
public void commandAction(Command c, Displayable d) {
if (c == exitCommand) {
notifyDestroyed();
}
}
}
下面就是通过WTK工具实现短消息推送的模拟过程。
1.开启WTK
2.创建工程
3.设置属性Settings
4.将你在Eclipse中编写的代码拷贝到工程目录的src下面
5.使用Project目录下面的Run via OTA方式运行软件,它是一种模拟安装的过程运行软件
6.调用File下面的Utilities的WMA,发送短消息
最后你就可以当看到手机模拟器收到消息,点击确认之后进入你的软件,并读取到里面的内容
最后
以上就是雪白太阳为你收集整理的J2ME SMS PUSH 短消息推送的全部内容,希望文章能够帮你解决J2ME SMS PUSH 短消息推送所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复