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函数。我所做的是在两部不同的手机中安装和启动应用程序,从一部手机向另一部手机发送消息并在另一部手机中接收。

消息发送和接收成功,但不在应用程序中。消息进入另一部手机的收件箱。

我能做些什么?

4

3 回答 3

1

尝试 5000 端口号。

有些手机有这个端口作为短信监听器

于 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 回答