Получите текстовое сообщение, используя J2ME
Я пытаюсь сделать приложение 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();
У меня есть оба send
а также receive
функции в двух разных формах. Я установил и запустил приложение на двух разных мобильных телефонах, отправил сообщение с одного мобильного телефона на другой и получил на другом.
Сообщение отправлено и получено успешно, но не в приложении. Сообщение отправляется в почтовый ящик другого мобильного телефона.
Что я могу сделать?
3 ответа
Попробуй 5000 порт нет.
некоторые телефоны имеют этот порт в качестве прослушивателя смс
Попробуйте заменить tmsg.setAddress("sms://" + number);
с tmsg.setAddress("sms://" + number + ":50001");
,
Лучшее, что вы можете сделать, - это запустить поток во время получения сообщения и убедиться, что ваши порты открыты перед прослушиванием уведомления о сообщении. Тогда внутри потока просто выполните conn.receive();
способ прочитать сообщение и делать с ним все, что вы хотите.