我正在尝试使用WMA API在J2ME中开发短信发送和接收测试应用程序。我有单独的线程用于发送和接收。
发送线程的运行方法 -
public void run() {
try {
MessageConnection connection = (MessageConnection) Connector.open("sms://+" + number + ":1234");
BinaryMessage messageBody = (BinaryMessage) connection.newMessage(connection.BINARY_MESSAGE);
messageBody.setPayloadData(message.getBytes());
connection.send(messageBody);
connection.close();
} catch (IOException ex) {
}
}
接收线程的运行方法
public void run() {
try {
while (true) {
MessageConnection connection = (MessageConnection) Connector.open("sms://:1234");
BinaryMessage messageBody = (BinaryMessage) connection.receive();
message = new String(messageBody.getPayloadData());
number = messageBody.getAddress();
number = number.substring(6, 15);
App.setDisplay(number, message);
connection.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
我正在初始化startApp()中的接收线程,并在按下send命令时初始化发送线程。我遇到的问题是,如果我使用两个仿真器,双方都无法发送消息。一个仿真器可以连续向另一个发送消息,但是当另一个仿真器尝试发送消息时,不会收到消息。
当模拟器控制台收到消息时显示 -
[INFO] [sms] ## javacall:短信 发送...
当该行出现时,模拟器不会收到任何消息。我的代码中的问题在哪里?
PS:我看到他们是一种使用监听器来解决这个问题的方法,使用一个单独的线程进行接收,但我想知道上面代码中的问题在哪里? 任何帮助都非常感谢^^
答案 0 :(得分:0)
如果您在模拟器中运行,请使用可用的wma控制台发送或接收消息。你不能从模拟器到模拟器。 wma控制台可在 公用事业 - > wma控制台
答案 1 :(得分:0)
我发现了问题......这是因为SMS在Netbeans上面的版本中不起作用。它只适用于Netbeans 6.1 ...模拟器出了点问题