1

J2ME midlet を使用してモバイル デバイスで受信したメッセージを読み取る方法がわかりません。実際に、SMS ゲートウェイを使用して他のモバイルにメッセージを送信しています。SMS ゲートウェイは同じモバイル デバイスに返信しますが、返信メッセージを読みたいです。受信トレイをチェックするのではなく、デバイスを直接確認します。コンセプトを使用してPushRegistryj2me midletでこれを行う方法。良いアイデアまたはサンプルコードを教えてください...事前に感謝します。

4

1 に答える 1

3

これには PushRegistry メカニズムを使用する必要があります。そのためには、アプリケーションが受信 SMS に反応することを .jad ファイルでマークし、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 で定義されたのと同じポート(例では 10214) を SMS 送信に使用する必要があります。

その後、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 に答える