BlackBerry - 使用Connector发送短信时出现空消息的异常

时间:2010-03-22 08:59:20

标签: exception networking blackberry sms

我使用了代码,但我收到了IOCancelledExceptionIOException。并且IOCancelledException.getMessage() / IOException.getMessage()给出null字符串,它不会给出错误消息。请帮助我明白理由。

class SMSThread extends Thread {
    Thread myThread;
    MessageConnection msgConn;
    String message;
    String mobilenumber;

    public SMSThread(String textMsg, String mobileNumber) {
        message = textMsg;
        mobilenumber = mobileNumber;
    }

    public void run() {
        try {
            msgConn = (MessageConnection) Connector.open("sms://+"
                    + mobilenumber);
            TextMessage text = (TextMessage) msgConn
                    .newMessage(MessageConnection.TEXT_MESSAGE);
            text.setPayloadText(message);
            msgConn.send(text);
            msgConn.close();
        } catch (IOCancelledException ioce) {
            System.out
                    .println("IOCancelledException: " + ioce.getMessage());
        } catch (IOException ioe) {
            System.out.println("IOException: " + ioe.getMessage());
        } catch (Exception e) {
            System.out.println("Exception: " + e);
        }
    }
}

1 个答案:

答案 0 :(得分:2)

我刚刚测试了样本,我无法重现异常。

启动设备模拟器时是否运行MDS simulator? (模拟网络连接是必须的)

这是我的代码:

class Scr extends MainScreen {

    BasicEditField mPhoneNumberField = new BasicEditField("phone number", "");
    BasicEditField mSMSField = new BasicEditField("sms text", "");

    public Scr() {
        add(mPhoneNumberField);
        add(mSMSField);
    }

    protected void makeMenu(Menu menu, int instance) {
        super.makeMenu(menu, instance);

        menu.add(new MenuItem("send sms", 0, 0) {
            public void run() {
                SMSThread thread = new SMSThread(mSMSField.getText(),
                        mPhoneNumberField.getText());
                thread.start();
            }
        });
    }

    class SMSThread extends Thread {
        Thread myThread;
        MessageConnection msgConn;
        String message;
        String mobilenumber;

        public SMSThread(String textMsg, String mobileNumber) {
            message = textMsg;
            mobilenumber = mobileNumber;
        }

        public void run() {
            try {
                msgConn = (MessageConnection) Connector.open("sms://+"
                        + mobilenumber);
                TextMessage text = (TextMessage) msgConn
                        .newMessage(MessageConnection.TEXT_MESSAGE);
                text.setPayloadText(message);
                msgConn.send(text);
                msgConn.close();
            } catch (IOCancelledException ioce) {
                System.out
                        .println("IOCancelledException: " + ioce.getMessage());
            } catch (IOException ioe) {
                System.out.println("IOException: " + ioe.getMessage());
            } catch (Exception e) {
                System.out.println("Exception: " + e);
            }
        }
    }
}
相关问题