2010-11-22 5 views
4

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

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

ИЛИ

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

ответ

2
  1. Вы можете получить список сетевых интерфейсов, их тип и связь Статус:

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

    NetworkInfo[] networkInfos = ConnectivityManager.getAllNetworkInfo(); 
    

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

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

    проверка состояния против NetworkInfo.State

    networkInfo.getState() == NetworkInfo.State.CONNECTED 
    
  2. Если вам нужна связь, то вы можете:

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

    b. Зарегистрируйте приемник, чтобы получить информацию о обновлении при изменении сетевого подключения: Intent action for network events in android sdk

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

Смежные вопросы