私の j2me アプリケーションでは、上記の例外 ( java.lang.securityException not allowed to open connection
) を受け取ります。私の関数の流れは、最初にコンストラクターでメッセージを受信するためにソケットを開き、次に SMS を送信するためにメソッド本体でポートを開きます。電話で MIDlet が SMS を送信する許可を求めます。NO を押すと、セキュリティ例外が表示されます。 SMS 送信は拒否されていません。問題ありません。しかし、同じ MIDlet にいて、このアクションを 2 回目に実行すると、コンストラクターで受信ポートを開くときに例外が発生しjava.lang.securityException not allowed to open connection
ます。現時点では、SMS の 2 回目の送信を求める許可はまだ見られません。コンストラクターと SMS 送信のコードは次のとおりです。
//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 を使用しています。Nokia デバイスを確認しています。まず、ポートを閉じる問題があるのではないかと思いますがMessageConnection
、それも試してみましたが、同じエラーが表示されます。SMS 送信については [いいえ] を選択しますが、SMS を送信して [いいえ] を選択するだけで、何度でも例外なく midlet にとどまると問題なく動作します。ありがとう