在我的 j2me 应用程序中,我收到了上述异常(java.lang.securityException not allowed to open connection
)。我的函数流程就像我首先在构造函数中打开套接字以接收消息,然后为了发送 SMS 我在方法主体中打开端口,在我的手机上 MIDlet 请求发送 SMS 的权限,如果我按 NO 它显示安全异常短信发送不被拒绝,没关系。但是,当在同一个 MIDlet 中并第二次执行此操作时,它会在构造函数中打开接收端口时给出异常java.lang.securityException not allowed to open connection
。此时我还没有看到任何要求第二次发送短信的权限。我的构造函数和短信发送代码如下:
//Constructor
public ServerContactRetriever(MainMidlet parent, Language lang) {
try {
this.language = lang;
this.parent = parent;
recvCon = (MessageConnection) Connector.open(RECV_URL); //open receiving port
recvCon.setMessageListener(this);
} catch (Exception ex) {
parent.dispErrorMessage(language.access_denied_disp);
parent.alertShow(language.access_denied_alert);
}
}
//METHOD
//Request restore contacts from server
private void sendRestoreRequest() {
try {
MessageConnection msgCon = (MessageConnection) Connector.open(SEND_URL);
TextMessage msg = (TextMessage) msgCon.newMessage(MessageConnection.TEXT_MESSAGE);
msg.setAddress(SEND_URL);
msg.setPayloadText("set payload here");
msgCon.send(msg);
msgCon.close();
} catch (Exception ex) {
try {
parent.alertShow(language.sms_error_alert);
parent.dispErrorMessage(language.sms_error_disp);
recvCon.close();
} catch (Exception ex1) {
}
}
}
我正在使用带有 MIDP 2.0 的 WTK。检查诺基亚设备。首先我想知道可能有关闭MessageConnection
端口的问题,但我也试过了,它显示了同样的错误。而关于 SMS 发送,我选择 NO,如果我只是尝试发送 SMS 并选择 NO 多次,它仍然可以正常工作,并且它仍然毫无例外地停留在 midlet 上。谢谢