小雪崩 发表于 2015-10-2 08:32:26

判断WIFI是否连接

ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if(wifi == State.CONNECTED){
    //WIFI已连接
}

监听WifiManager.NETWORK_STATE_CHANGED_ACTION可以获取WIFI网络连接状态改变的广播
监听WifiManager.WIFI_STATE_CHANGED_ACTION可以获取WIFI状态改变的广播(打开、关闭、正在打开、正在关闭、未知)。


@Override
    public void onReceive(Context context, Intent intent) {
      // TODO Auto-generated method stub
      System.out.println(intent.getAction());
      if(intent.getAction().equals(WifiManager.RSSI_CHANGED_ACTION))
      {
            //信号强度改变
            int strength=getStrength(context);
            System.out.println("当前信号 "+strength);
      }else if(intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)){
            System.out.println("网络状态改变");
            NetworkInfo info=intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
            if(info.getState().equals(NetworkInfo.State.DISCONNECTED))
            {
                //WIFI网络断开
            } else if(...){
                //其他状态
            }
      }else if(intent.getAction().equals(WifiManager.WIFI_STATE_CHANGED_ACTION))
      {
            //WIFI开关
            int wifistate=intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,WifiManager.WIFI_STATE_DISABLED);
            if(wifistate==WifiManager.WIFI_STATE_DISABLED)
            {
                //WIFI关闭
            } else if(...){
                //其他状态
            }
      }

    }

需要权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
页: [1]
查看完整版本: 判断WIFI是否连接