我使用了代码,但我收到了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);
}
}
}
答案 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);
}
}
}
}