Интернет доступен или нет в codenameone


person tizbn    schedule 07.05.2014    source источник
comment
добавить блок try { } catch?   -  person Daniel W.    schedule 07.05.2014


Ответы (2)


Я решил это так:

public static boolean am_i_online() {
    boolean online = false;
    String net = NetworkManager.getInstance().getCurrentAccessPoint();
    if (net == null || net == "" || net.equals(null)) {
        online = false;
    } else {
        online = true;
    }
        return online;
}

Хотя это проверяет только то, подключено ли ваше устройство к точке доступа WLAN или мобильной сети, а не можете ли вы подключиться к удаленному веб-серверу.

Тем не менее, я решил использовать этот подход, а не пытаться подключиться к удаленному хосту с помощью ConnectionRequest, в основном из-за простоты, скорости и того факта, что нет необходимости все время «звонить домой».

В настоящее время кажется, что это решение работает как для WLAN, так и для мобильных подключений для передачи данных.

person ryru    schedule 12.05.2016
comment
Другим подходом может быть использование подключаемого модуля CN1LIBS с connectivity. Хотя он звонит домой при каждом использовании, он проверяет реальное интернет-соединение и может сообщить вам используемый тип соединения (WIFI или мобильные данные). - person ryru; 12.07.2016
comment
Можете ли вы подробно рассказать о том, как использовать подключение плагина CN1LIBS для проверки подключения к Интернету (хорошо, если вы укажете пример кода для него) - person Shekhar Jadhav; 08.08.2016
comment
@ShekharJadhav в основном использует этот пример: if (Connectivity.isConnected()) { //we have some connection } else { // we have no connection } он взят из README на сайте проекта GitHub. Если у вас есть вопрос, как использовать CN1LIBS, ознакомьтесь с этим. - person ryru; 10.08.2016

URL-адрес автоматического определения используется внутри Codename One. Геттер выставляется для согласованности.

Чтобы узнать, доступен ли сайт, просто попробуйте подключиться к нему с помощью класса ConnectionRequest. Вы можете вызвать setFailSilently(true), чтобы он не выдавал исключение, и проверить код ответа, чтобы убедиться, что вы получили код ответа 200.

person Shai Almog    schedule 07.05.2014