Я пытаюсь разработать тестовое приложение для отправки и получения смс в J2ME, используя WMA API.У меня есть отдельные темы для отправки и получения.
Метод запуска Отправляющего потока -
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 () и инициализирую отправкупоток, когда команда отправки нажата.У меня проблема в том, что если я использую два эмулятора, обе стороны не могут отправлять сообщения.Один эмулятор может непрерывно отправлять сообщения другому, но когда другой эмулятор пытается отправить сообщение, сообщение не получено.
При получении сообщения консоль эмулятора показывает -
[INFO] [sms] ## javacall: отправка SMS ...
когда эта строка появляется, эмулятор не получает никаких сообщений.Где проблема в моем коде?
PS: я видел, что это способ использовать слушателя, чтобы обойти эту проблему с помощью отдельного потока для получения, но я хочу знать, где проблема в приведенном выше коде?Любая помощь очень ценится ^^