1

我正在尝试使用 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) {

        }
    } 

接收线程的run方法

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: 短信发送...

当该行出现时,模拟器不会收到任何消息。我的代码中的问题在哪里?

PS:我看到他们是一种使用监听器来解决这个问题的方法,使用单独的线程进行接收,但我想知道上面代码中的问题出在哪里?非常感谢任何帮助^^

4

2 回答 2

0

我发现了问题......这是因为SMS在Netbeans以上版本中不起作用。它仅适用于 Netbeans 6.1 ...模拟器有问题

于 2011-07-21T06:04:00.470 回答
0

如果您在模拟器中运行,请使用 wma 控制台来发送或接收消息。你不能从模拟器到模拟器。wma 控制台在实用程序 -> wma 控制台中可用

于 2011-07-05T17:38:47.833 回答