监控Android设备上的WiFi

我需要在我的应用程序中处理几个Wifi场景的建议.

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

要么

假设如果Wifi不可用,设备正在尝试连接到GPRS / 3G,如果在此期间用户/后台服务正在发出http请求,我们如何在代码中处理它?

最佳答案 >您可以列出网络接口,其类型和连接状态:

获取所有网络接口:

NetworkInfo[] networkInfos = ConnectivityManager.getAllNetworkInfo();

检查网络接口的类型

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

检查NetworkInfo.State的状态

networkInfo.getState() == NetworkInfo.State.CONNECTED

>如果您需要连接,则可以:

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

湾注册接收器以在网络连接发生变化时获取更新信息:Intent action for network events in android sdk
>如果在没有连接时尝试获取HTTP数据,则会出现异常.您可以捕获并稍后重试,但选项2更好.

点赞