java.lang.securityException 不允许打开连接 j2me
Posted
技术标签:
【中文标题】java.lang.securityException 不允许打开连接 j2me【英文标题】:java.lang.securityException not allowed to open connection j2me 【发布时间】:2012-12-28 07:54:15 【问题描述】:在我的 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 上。谢谢
【问题讨论】:
【参考方案1】:关闭 MessageConnection 没有问题。在某些 s40 和 Symbian 手机(如 X2-02)中,整个会话只会询问一次权限。如果您选择“是”,则在第二次连接时它不会再次询问您。它将直接连接。同样,如果您选择“否”,则在第一次连接时,每次尝试连接时都将不允许连接(将抛出 securityException)。
在某些诺基亚手机上,您可能会看到此选项,
选择应用->选项->应用访问->通讯-> 1. 每次询问 2.第一次问 3. 始终允许 4. 不允许。
您可以选择适合您的。
如果您根本不希望您的应用程序寻求权限,您需要让制造商为您的应用程序签名。
【讨论】:
嗯,这是因为应用程序内部已经打开了连接,如果处理得当,它工作正常。但是你说的和那件事无关! @Saqib 你能告诉我你是怎么处理的吗,我在消息应用程序中有同样的例外。 我必须明确地捕获这两个异常,我不知道为什么它不适用于 Generic EXCEPTION 事情,但必须进行单独的异常处理,例如 SMS 的 SecurityException 和消息端口的 IOException .希望你能解决!以上是关于java.lang.securityException 不允许打开连接 j2me的主要内容,如果未能解决你的问题,请参考以下文章