java.lang.securityException не разрешено открывать соединение j2me
В моем приложении j2me я получаю исключение выше (java.lang.securityException not allowed to open connection
). Моя функция выглядит так: сначала я открываю сокет для получения сообщения в конструкторе, а затем для отправки SMS я открываю порты в теле метода, на моем телефоне мидлет запрашивает разрешение на отправку SMS, и если я нажимаю НЕТ, выдается исключение безопасности, которое Отправка смс не запрещена, все нормально. Но, находясь в том же мидлете и выполняя это действие во второй раз, он дает исключение во время открытия принимающего порта в конструкторе, как java.lang.securityException not allowed to open connection
, В это время я еще не видел ни одного разрешения на отправку SMS во второй раз. Мой код для конструктора и отправки 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) {
}
}
}
Я использую WTK с MIDP 2.0. Проверка на устройствах Nokia. Сначала я думаю, что может быть проблема закрытия MessageConnection
порт, но я тоже пробовал, и он показывает ту же ошибку. Принимая во внимание, что при отправке SMS, и я выбираю НЕТ, все работает нормально, если я просто пытаюсь отправить SMS и выбираю НЕТ столько раз, сколько я хочу, и он по-прежнему остается в мидлете без каких-либо исключений. Спасибо
1 ответ
Нет проблем с закрытием MessageConnection. В некоторых телефонах s40 и Symbian (например, X2-02) разрешение будет запрашиваться только один раз для одного целого сеанса. Если вы выберете "Да", он не спросит вас снова при подключении во второй раз. Это будет напрямую подключаться. Точно так же, если вы выберете "Нет" при первом подключении, подключения не будут разрешены (исключение securityException) при каждой попытке подключения.
На некоторых телефонах Nokia вы можете увидеть эту опцию,
Выберите приложение-> Параметры-> Доступ к приложению-> Связь-> 1. Всегда спрашивать 2. Первый раз спрашивать 3. Всегда разрешено 4. Не разрешено.
Вы можете выбрать тот, который подходит вам.
Если вы не хотите, чтобы ваше приложение запрашивало разрешения, необходимо, чтобы ваше приложение было подписано производителем.