Страница 1 из 1

if ( нету интернета ) { ...}

Добавлено: 13 май 2014, 19:54
doter.ua
Можно ли как-нибудь "спросить" у системы о статусе подключения к интернету? Апликуха тащит инфу из и-нета, а если он не включен - крашится. Думаю мб просто отказать юзеру, если и-нет недоступен.

Код находится в классе виджета extends AppWidgetProvider (активити нету)

Re: if ( нету интернета ) { ...}

Добавлено: 13 май 2014, 20:03
Mikhail_dev
Есть удобная библиотека для работы с интернетом (Volley), пишет её сам гугл.
http://arnab.ch/blog/2013/08/asynchrono ... ng-volley/
вот пример как работать с ней, в нем есть класс, в котором есть обработка ошибок отсутствующего интернета. Я думаю так правильней будет обрабатывать ошибки отсутствующего интернета.

Статус включенного интернета конечно можно узнать, но там не всё так очевидно. К примеру мы можем быть подключены к WiFi, а сам роутер не подключен к интернету.

Re: if ( нету интернета ) { ...}

Добавлено: 13 май 2014, 20:17
doter.ua
Нашел на "стеке"

Код: Выделить всё

public static boolean isNetworkAvailable(Context context) 
{
    ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

    if (connectivity != null) 
    {
        NetworkInfo[] info = connectivity.getAllNetworkInfo();

        if (info != null) 
        {
            for (int i = 0; i < info.length; i++) 
            {
                Log.i("Class", info[i].getState().toString());
                if (info[i].getState() == NetworkInfo.State.CONNECTED) 
                {
                    return true;
                }
            }
        }
    }
    return false;
}
А вот насчет роутера без доступа нужно будет потестить.
Update: протестил: нужно было проверить "штуку" вытягиваемую из интернета на null.