java.lang.securityException не разрешено открывать соединение j2me

В моем приложении j2me я получаю выше исключение ( java.lang.securityException не разрешено открывать соединение ). Поток моей функции похож на первый открытый ящик для получения сообщения в конструкторе, а затем для отправки SMS-сообщений, открытых порты в теле метода, на моем телефоне MIDlet запрашивает разрешение на отправку SMS-сообщений, если я нажимаю NO, он показывает исключение безопасности, которое Отправка SMS не отрицается, это нормально. Но когда он находится в том же MIDlet и выполняет это действие во второй раз, он дает исключение во время открытия принимающего порта в конструкторе, поскольку java.lang.securityException не разрешено открывать соединение . В это время я еще не видел разрешения на отправку SMS еще раз. Мой код для Constructor и отправки 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 и я выбираю NO, он отлично работает, если я просто попробую отправить SMS и выбрать NO столько раз, сколько захочу, и он все равно останется на мидлете без каких-либо исключений. благодаря

1
nl ja de

1 ответы

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

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

Select the application->Options->Application Access->Communication-> 1. Ask Every time 2. Ask first time 3. Always allowed 4. Not allowed.

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

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

0
добавлено
@Saqib, можете ли вы рассказать мне, как вы справились с этим, у меня такое же исключение в приложении для обмена сообщениями.
добавлено автор Arpit Kulshrestha, источник
Хорошо, что из-за уже открытого соединения внутри приложения, и при правильном обращении он работал нормально. Но то, о чем вы говорите, не имеет ничего общего с этой вещью!
добавлено автор Saqib, источник
Я должен был поймать оба исключения явным образом, я не знаю, почему это не сработало с Generic EXCEPTION, но мне пришлось идти на обработку отдельных исключений, например SecurityException для SMS и IOException для портов сообщений. Надеюсь, ты это выяснишь!
добавлено автор Saqib, источник
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

EvilWirelessChat
EvilWirelessChat
226 участник(ов)

Группа русскоязычных специалистов по беспроводным сетям. Мат, шуточки за триста, два стула и прочий трешак разрешены исключительно в рамках обсуждения технических деталей. Троллинг разрешен. Прямые оскорбления запрещены.

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async