4

テキストメッセージを送信および受信するためのJ2MEアプリケーションを作成しようとしています。送信部分は終了しましたが、メッセージを受信できません。

以下は、テキストメッセージを受信するために私が試したことです。

    try {
        MessageConnection conn = (MessageConnection) Connector.open("sms://:50001");
        conn.setMessageListener(new MessageListener() {
            public void notifyIncomingMessage(MessageConnection conn) {
                try {
                    Message msg;
                    msg = conn.receive();
                    if (msg instanceof TextMessage) {
                        TextMessage tmsg = (TextMessage) msg;
                        stringItem.setText("Msg: " + tmsg.getPayloadText());
                        System.out.println(tmsg.getPayloadText());
                    }
                    // else if(msg instanceof BinaryMessage) {
                    // .....
                    // } else {
                    // ......
                    // }
                } catch (IOException ex) {
                    ex.printStackTrace();
                } finally {
                    try {
                        conn.close();
                    } catch (IOException ex) {
                        ex.printStackTrace();
                    }
                }
            }
        });
    } catch (Exception e1) {
        System.out.println(e1);
    }

しかし、これは機能していません...エラーも表示されていません...私が間違っているのは何ですか?... J2MEを使用してメッセージを受信できますか?

メッセージを送信するためのコード:(更新)

MessageConnection conn = (MessageConnection) Connector.open("sms://:50001");
TextMessage tmsg = (TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE);
tmsg.setPayloadText(message);
tmsg.setAddress("sms://" + number);
conn.send();

私はsendreceive関数の両方を2つの異なる形式で持っています。私がしたことは、2つの異なる携帯電話にアプリケーションをインストールして起動し、一方の携帯電話からもう一方の携帯電話にメッセージを送信し、もう一方の携帯電話で受信することです。

メッセージは正常に送受信されますが、アプリケーションでは送受信されません。メッセージは他の携帯電話の受信トレイに送られます。

私に何ができる?

4

3 に答える 3

1

5000 ポート番号を試してください。

一部の電話では、このポートが SMS リスナーとして使用されています

于 2011-04-12T11:23:58.833 に答える
0

に置き換えtmsg.setAddress("sms://" + number);てみてくださいtmsg.setAddress("sms://" + number + ":50001");

于 2011-04-12T14:03:45.527 に答える
0

最善の方法は、メッセージを受信したときにスレッドを開始し、メッセージ通知を聞く前にポートが開いていることを確認することです。次に、スレッド内でconn.receive();メソッドを実行してメッセージを読み取り、それに対してやりたいことを何でもします。

于 2012-12-27T05:33:22.687 に答える