Получение SMS-сообщений с использованием WMA в Java ME

Я пытаюсь разработать тестовое приложение для отправки и получения sms в 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 () и инициализирую отправляющий поток при нажатии команды отправки. У меня проблема в том, что если я использую два эмулятора, обе стороны не могут отправлять сообщения. Один эмулятор может непрерывно отправлять сообщения другому, но когда другой эмулятор пытается отправить сообщение, сообщение не получено.

Когда сообщение получено консолью эмулятора, показывает -

[ИНФОРМАЦИЯ] [sms] ## javacall: отправка SMS ...

когда появляется эта строка, эмулятор не получает никаких сообщений. В чем проблема в моем коде?

PS: Я видел, что это способ использовать слушателя для решения этой проблемы с использованием отдельного потока для приема, но я хочу знать, где проблема в приведенном выше коде? Любая помощь действительно приветствуется ^^


person Chan    schedule 05.07.2011    source источник
comment
На всякий случай использую Netbeans для разработки   -  person Chan    schedule 06.07.2011


Ответы (2)


Если вы работаете в эмуляторе, используйте консоль wma, доступную для отправки или получения сообщений. Вы не можете сделать это от эмулятора к эмулятору. Консоль wma доступна в утилитах -> консоль wma

person Srikanth Pasumarthy    schedule 05.07.2011

Я обнаружил проблему ... Это потому, что SMS не работает в версиях Netbeans выше. Работает только в Netbeans 6.1 ... Что-то не так с эмулятором

person Chan    schedule 21.07.2011