我不知道如何使用J2ME midlet在移动设备中阅读收到的消息。实际上我一直在使用短信网关将消息发送到其他手机。短信网关回复同一个移动设备,但我想阅读直接在设备上回复消息,而不是检查收件箱。如果使用PushRegistry
概念在j2me midlet中执行此操作。请为我提供好主意或示例代码...提前感谢。
答案 0 :(得分: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启动之后,你应该拨打你的短信收件人代码来获取短信:
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();
}
}