Форум программистов, компьютерный форум CyberForum.ru

Проверка internet connection. Проверка доступности сети - Android

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.77
chizz
 Аватар для chizz
979 / 493 / 54
Регистрация: 19.03.2013
Сообщений: 3,059
Записей в блоге: 18
Завершенные тесты: 1
23.07.2013, 17:35     Проверка internet connection. Проверка доступности сети #1
Добрый день.

Для проверки Internet Connection советуют делать что-то вроде:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private boolean haveNetworkConnection() {
    boolean haveConnectedWifi = false;
    boolean haveConnectedMobile = false;
 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo[] netInfo = cm.getAllNetworkInfo();
    for (NetworkInfo ni : netInfo) {
        if (ni.getTypeName().equalsIgnoreCase("WIFI"))
            if (ni.isConnected())
                haveConnectedWifi = true;
        if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
            if (ni.isConnected())
                haveConnectedMobile = true;
    }
    return haveConnectedWifi || haveConnectedMobile;
}
Я проверял на эмуляторе - отключение интернета на компе никак не влияет на работу. Девайс продолжает пытаться ломиться в интернет. Как дать девайсу понять, что хоть wi-fi и включен, но интернета нет.

Как правильно решить этот вопрос?

Моя единственная идея - пинговать адрес перед http-запросом и делать запрос если ping прошел. Или ставить таймаут на http request/response.. но я не знаю как.

Добавлено через 2 часа 41 минуту
Сделал костыль, как написано вот тут: http://stackoverflow.com/a/5803489/1912385
Вроде работает так как нужно.

Плюс проверка с использованием ConnectivityManager.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2013, 17:35     Проверка internet connection. Проверка доступности сети
Посмотрите здесь:

Android Проверка столкновения спрайтов
Проверка числа Android
Android Проверка совместимости
Проверка на null Android
Проверка подключения по bluetooth Android
Проверка лицензии Android
Android Проверка if/else
Android Проверка доступности файла по пути к файлу
проверка apk Android
Android Проверка логина
Проверка на первый запуск Android
Android проверка антивируса

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
23.07.2013, 20:12     Проверка internet connection. Проверка доступности сети #2
А это не подойдет?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
 
public class ConnectionDetector {
 
    private Context _context;
 
    public ConnectionDetector(Context context){
        this._context = context;
    }
 
    public boolean isConnectingToInternet(){
        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++)
                      if (info[i].getState() == NetworkInfo.State.CONNECTED)
                      {
                          return true;
                      }
 
          }
          return false;
    }
}
У меня на эмуляторе отлавливает, что инета нет
chizz
 Аватар для chizz
979 / 493 / 54
Регистрация: 19.03.2013
Сообщений: 3,059
Записей в блоге: 18
Завершенные тесты: 1
23.07.2013, 21:16  [ТС]     Проверка internet connection. Проверка доступности сети #3
Может подойдет, надо проверить.
Это штука работает, если вообще нет подключения к инету. Но если он есть, но плохо работает - не подойдет. Нужен timeout и проверка доступности адреса...
Yandex
Объявления
23.07.2013, 21:16     Проверка internet connection. Проверка доступности сети
Ответ Создать тему
Опции темы

Текущее время: 05:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru