Мониторинг WiFi на устройстве Android - PullRequest
4 голосов
/ 22 ноября 2010

Мне нужно предложение по обработке нескольких сценариев Wi-Fi в моем приложении.

Предположим, мое приложение работает, и устройство некоторое время не используется, и оно перешло в спящий режим. В спящем режиме wifi автоматически отключается. Теперь снова, когда устройство возвращается из спящего режима, требуется некоторое время, чтобы включить состояние Wi-Fi. Теперь, если в течение этого времени фоновый сервис приложения делает http-запрос, как мы справимся с этим сценарием?

OR

предположим, что если Wi-Fi недоступен, устройство пытается подключиться к GPRS / 3G, и если в течение этого периода, если пользовательская / фоновая служба выполняет запрос http, как мы обрабатываем его в коде?

1 Ответ

2 голосов
/ 22 ноября 2010
  1. Вы можете перечислить сетевые интерфейсы, их тип и состояние подключения:

    Получить все сетевые интерфейсы:

    NetworkInfo[] networkInfos = ConnectivityManager.getAllNetworkInfo();
    

    проверить тип сетевого интерфейса

    networkInfo.getType() == ConnectivityManager.TYPE_MOBILE // or TYPE_WIFI
    

    проверить статус по NetworkInfo.State

    networkInfo.getState() == NetworkInfo.State.CONNECTED
    
  2. Если вам необходимо соединение, вы можете:

    a.Проверьте состояние сети, как описано выше.

    b.Зарегистрируйте приемник, чтобы получать информацию об обновлениях при изменении сетевого подключения: Намеренное действие для сетевых событий в Android SDK

  3. Если вы пытаетесь получить данные HTTP, когда нетподключение вы получите исключение.Вы можете поймать это и повторить попытку позже, но вариант 2. лучше.

...