我正在尝试将J2ME应用程序发送到SEND和RECEIVE文本消息。我完成了它的发送部分,但我无法收到任何消息..
以下是我尝试接收短信的内容;
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();
我有两种不同形式的send
和receive
函数。我所做的是在两个不同的手机中安装和启动应用程序,从一个手机向另一个手机发送消息,在另一个手机中接收消息。
成功发送和接收消息,但不在应用程序中。该消息将转到另一部手机的收件箱中。
我该怎么办?
答案 0 :(得分:1)
尝试5000端口号。
有些手机将此端口作为短信听众
答案 1 :(得分:0)
尝试将tmsg.setAddress("sms://" + number);
替换为tmsg.setAddress("sms://" + number + ":50001");
。
答案 2 :(得分:0)
您可以做的最好的事情是在收到消息时启动一个线程,并确保在收听消息通知之前打开您的端口。然后在线程内部执行conn.receive();
方法来阅读消息并做任何你想做的事情。