1

我不知道如何使用 J2ME midlet 阅读移动设备中收到的消息。实际上我一直在使用 SMS 网关将消息发送到其他手机。短信网关回复同一移动设备,但我想阅读回复消息设备直接,不会检查收件箱。如何使用概念在 j2me midlet 中执行此操作。请PushRegistry给我一个好主意或示例代码...提前谢谢。

4

1 回答 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();
    }
}

更多信息: http: //www.developer.nokia.com/Community/Wiki/How_to_launch_a_MIDlet_remotely_via_SMS_or_locally_via_an_Alarm_with_PushRegistry_in_Java_ME

于 2012-09-26T15:48:15.993 回答