我不知道如何使用 J2ME midlet 阅读移动设备中收到的消息。实际上我一直在使用 SMS 网关将消息发送到其他手机。短信网关回复同一移动设备,但我想阅读回复消息设备直接,不会检查收件箱。如何使用概念在 j2me midlet 中执行此操作。请PushRegistry
给我一个好主意或示例代码...提前谢谢。
问问题
1636 次
1 回答
3
您应该为此使用 PushRegistry 机制。为此,您应该在 .jad 文件中标记您的应用程序对传入的 SMS 做出反应,并标记 SMS 权限。将这些属性放入 JAD 文件:
MIDlet-Push-1: sms://:10214,hu.bute.daai.example.sms.MidletSMSPushDemo,*
MIDlet-Permissions: javax.microedition.io.PushRegistry, javax.microedition.io.Connector.sms, javax.wireless.messaging.sms.receive
请注意,您应该使用自己的包和 MIDlet 名称。除此之外,您应该使用与 JAD 中定义的相同的端口来发送 SMS(示例中为 10214)。
之后,当您的 MIDlet 启动时,您应该调用您的 SMS 接收器代码来获取 SMS:
public class MidletJSMSProxy extends MIDlet {
public void startApp() {
initalize();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void initSMSReceive() {
new Thread() {
public void run() {
MessageConnection conn = null;
try {
String url = "sms://:10214";
MessageConnection conn = (MessageConnection) Connector.open(url);
TextMessage message = (TextMessage)conn.receive();
System.out.println("SMS: "+message.getAddress()+" - "+message.getPayloadText());
}
catch(Exception e){
e.printStackTrace();
} finally {
try {
if (conn != null)
conn.close();
} catch(Exception e){
e.printStackTrace();
}
}
}
}.start();
}
}
于 2012-09-26T15:48:15.993 回答