2010-11-22 59 views
4

我需要在我的应用程序中处理少量Wifi情况的建议。监控Android设备上的WiFi

假设我的应用程序正在运行并且设备保持空闲一段时间,并且它已进入睡眠模式。在睡眠模式下,wifi会自动关闭。现在,当设备从睡眠模式恢复时,需要一段时间才能打开Wifi状态。 现在,如果在这段时间内,应用后台服务正在发出http请求,那么我们该如何处理该场景?

OR

想如果无线网络连接不可用,设备正试图在此期间连接到GPRS/3G如果如果用户/后台服务使HTTP请求,我们如何处理它的代码?

回答

2
  1. 可以列出网络接口,它们的类型和连接状态:

    获取所有网络接口:网络接口

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

    对检查状态的

    NetworkInfo[] networkInfos = ConnectivityManager.getAllNetworkInfo(); 
    

    检查类型NetworkInfo.State

    networkInfo.getState() == NetworkInfo.State.CONNECTED 
    
  2. 如果你需要一个连接,那么您可以:

    一个。如上所述检查网络状态。

    b。注册接收器以在网络连接更改时获取更新信息:Intent action for network events in android sdk

  3. 如果尝试在没有连接时获取HTTP数据,您将收到异常。你可以抓住这个,然后重试,但选项2更好。