BlackBerry - Исключение с нулевым сообщением при отправке смс с помощью Connector - PullRequest
1 голос
/ 22 марта 2010

Я использовал указанный код, но я получаю IOCancelledException и IOException. И 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 Ответ

2 голосов
/ 22 марта 2010

Я только что проверил образец, я не могу воспроизвести исключения.

У вас работает MDS симулятор при запуске эмулятора устройства?
(обязательно смоделировать сетевое соединение)

Вот мой код:

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);
            }
        }
    }
}
...