在Java ME中使用WMA接收SMS消息

时间:2011-07-05 02:55:09

标签: java java-me sms wma

我正在尝试使用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:我看到他们是一种使用监听器来解决这个问题的方法,使用一个单独的线程进行接收,但我想知道上面代码中的问题在哪里? 任何帮助都非常感谢^^

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我发现了问题......这是因为SMS在Netbeans上面的版本中不起作用。它只适用于Netbeans 6.1 ...模拟器出了点问题