android wifi_state_enabling,Android WIFI状态监控

Android 的wifi状态可以分为两大类,两者均可通过广播监听,相应的Action在WifiManager类中:

第一类:有无wifi源及各个状态间转变

可监听 WIFI_STATE_CHANGED_ACTION。(如下图所示,双击图片可放大)

120735_0.png

有五种情况:

1-1 disabled

1-2 disabling

1-3 enable

1-4 enabling

1-5 unknown

可通过不同的Extra值,见下图(双击可放大)获得状态常量:

120735_1.png

代码如下:

if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) {             int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 0);                          switch (wifiState) {             case WifiManager.WIFI_STATE_DISABLED:                 updateWifiStatus(R.drawable.wifi_disable);                 Toast.makeText(mContext, R.string.wifi_disable,                         Toast.LENGTH_LONG).show();                 break;             case WifiManager.WIFI_STATE_DISABLING:                 break;             case WifiManager.WIFI_STATE_ENABLED:                 updateWifiStatus(R.drawable.wifi_enable);                 Toast.makeText(mContext, R.string.wifi_enable,                         Toast.LENGTH_LONG).show();                 break;             case WifiManager.WIFI_STATE_ENABLING:                 break;             case WifiManager.WIFI_STATE_UNKNOWN:                 break;             }         }

也可通过以下代码实现:

mWifiMng = (WifiManager) mContext                 .getSystemService(mContext.WIFI_SERVICE);                  switch (mWifiMng.getWifiState()) {         case WifiManager.WIFI_STATE_DISABLED:             updateWifiStatus(R.drawable.wifi_disable);             Toast.makeText(mContext, R.string.wifi_disable,                     Toast.LENGTH_LONG).show();             break;         case WifiManager.WIFI_STATE_DISABLING:             break;         case WifiManager.WIFI_STATE_ENABLED:             updateWifiStatus(R.drawable.wifi_enable);             Toast.makeText(mContext, R.string.wifi_enable,                     Toast.LENGTH_LONG).show();             break;         case WifiManager.WIFI_STATE_ENABLING:             break;         case WifiManager.WIFI_STATE_UNKNOWN:             break;         }

第二类:wifi是否连接正常

可监听:NETWORK_STATE_CHANGED_ACTION(如下图所示,双击图片可放大)

120735_2.png

有两种状况:

2-1连接

2-1未连接

在OnReceiver方法中,通过不同Extra值,获得连接状况,如下图,双击图片放大:

120735_3.png

代码如下:

if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) {              Parcelable parcelableExtra = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);              if (null != parcelableExtra) {                  NetworkInfo networkInfo = (NetworkInfo) parcelableExtra;                  boolean isConnected = networkInfo.isAvailable();                  updateNetworkStatus();              }          }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值