1

В моем приложении j2me я получаю исключение выше (java.lang.securityException not allowed to open connection). Поток моей функции похож на первый открытый ящик для получения сообщения в конструкторе, а затем для отправки SMS-сообщений, открытых порты в теле метода, на моем телефоне MIDlet запрашивает разрешение на отправку SMS-сообщений, если я нажимаю NO, он показывает исключение безопасности, которое Отправка SMS не отрицается, это нормально. Но когда он находится в одном мидлете и выполняет это действие во второй раз, он дает исключение во время открытия принимающего порта в конструкторе как java.lang.securityException not allowed to open connection. В это время я еще не видел разрешения на отправку SMS еще раз. Мой код для отправки конструктора и СМС ниже:java.lang.securityException не разрешено открывать соединение j2me

//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 и я выбираю NO, он отлично работает, если я просто попробую отправить SMS и выбрать NO столько раз, сколько захочу, и он все равно останется на мидлете без каких-либо исключений. Спасибо

ответ

0

Нет проблем с закрытием MessageConnection. В некоторых телефонах s40 и Symbian (например, X2-02) разрешение будет запрашиваться только один раз для одного сеанса. Если вы выберете «Да», он не попросит вас снова при подключении во второй раз. Он будет напрямую подключаться. Аналогично, если вы выберете «Нет», при первом подключении никаких подключений не будет (при вызове SecurityException) при каждой попытке подключения.

На некоторых телефонах Nokia, вы можете увидеть эту опцию,

Выберите APPLICATION-> Options-> Application Access-> Связь-> 1. Спрашивать каждый раз 2. Задайте первый раз 3. Всегда разрешено 4. Не допускается.

Вы можете выбрать тот, который вам подходит.

Если вы не хотите, чтобы ваше приложение запрашивало разрешения вообще, вам необходимо, чтобы ваше приложение подписало Производитель.

+0

Ну, это было из-за уже открытого подключения внутри приложения, и при правильном обращении он работал нормально. Но то, о чем вы говорите, не имеет ничего общего с этой вещью! – Saqib

+0

@Saqib, можете ли вы рассказать мне, как вы справились с этим, у меня такое же исключение в приложении для обмена сообщениями. –

+0

Я должен был поймать оба исключения в явном виде, я не знаю, почему это не сработало с Generic EXCEPTION, но мне пришлось идти на обработку отдельных исключений, например SecurityException для SMS и IOException для портов сообщений. Надеюсь, ты это выяснишь! – Saqib

Смежные вопросы