老爷子88 发表于 2015-10-1 10:47:01

安卓使用广播来监控Wifi状态

  主要写给自己看,以后直接使用。直接上代码:
  通过监听网络状态改变更新一次Notification状态。然后发现关闭时很及时,但是打开时硬件没启动,代码就执行了,结果打开时状态仍不及时,决定延迟发送消息,执行代码,延迟两秒时还是没作用,延迟四秒时终于可以解决了。
  //监测Wifi网络状态的广播接收器
private WifiStateReceiver mWifiStateReceiver;
  /**
* 注册Wifi监听广播接收器
* @author Liusy
*/
private void initWifiState() {
mWifiStateReceiver = new WifiStateReceiver();
   //注册广播接收器,只监听Wifi网络状态的改变
registerReceiver(mWifiStateReceiver,
       new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION));
}
  
  /**
* 监控Wifi状态的广播接收器
* @author Liusy
* 2012-6-29
*/
private final class WifiStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context c, Intent intent) {
   Bundle bundle = intent.getExtras();
   int statusInt = bundle.getInt("wifi_state");
  switch (statusInt) {
   case WifiManager.WIFI_STATE_UNKNOWN:
    break;
   case WifiManager.WIFI_STATE_ENABLING:
    Log.i(TAG, "网络打开,系统将处于在线状态!");
    break;
   case WifiManager.WIFI_STATE_ENABLED:
   
    mHandler.sendEmptyMessageDelayed(0, 4 * 1000);
   
   
    break;
   case WifiManager.WIFI_STATE_DISABLING:
    Log.i(TAG, "网络关闭,系统将处于离线状态!");
    askForWebService();
    break;
   case WifiManager.WIFI_STATE_DISABLED:
    Log.i(TAG, "网络关闭");
    break;
   default:
    break;
   }
}
}
页: [1]
查看完整版本: 安卓使用广播来监控Wifi状态