安卓 获取wifi连接状态的方法是什么?

在网上找了很多也没有找到。。。额,求给个链接,或者方法名能获取在wifi连接的时候的状态
例如 正在连接ING 验证身份信息ING 连接失败这一类的。。 链接过程中的状态的。。

利用Receiver进行判断即可:
http://blog.csdn.net/lizhenmingdirk/article/details/19817101


package com.example.sunsiyuan.mydemo;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.nfc.Tag;
import android.util.Log;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by sunsiyuan on 16/10/10.
 */

public class WIFIAdmin {
    /*Log.Tag*/
    private final static String TAG = WIFIAdmin.class.getSimpleName();
    /*新建字符串缓存*/
    private StringBuffer mStringBuffer = new StringBuffer();
    /*保存扫描结果*/
    private List<ScanResult> listResult = new ArrayList<>();
    /*创建扫描类*/
    private ScanResult mScanResult;
    /*创建WIFIManage对象*/
    private WifiManager wifiManager;
    /*创建WifiInfo对象*/
    private WifiInfo wifiInfo;
    /*网络连接列表*/
    private List<WifiConfiguration> wifiConfigList = new ArrayList<>();
    /*创建一个WifiLock*/
    private WifiManager.WifiLock wifiLock;
    /*创建连接管理器*/
    private ConnectivityManager connManage;
    private Context context;
    /*WI-FI配置列表*/
    private List<WifiConfiguration> wifiConfigedSpecifiedList = new ArrayList<>();
    private boolean isConnectioned = false;

    public WIFIAdmin(Context context) {
        this.context = context;
        /*获取wifiManager系统服务*/
        wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        /*获取WIFI连接信息*/
        wifiInfo = wifiManager.getConnectionInfo();
        /*获取连接管理系统服务*/
        connManage = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

    }

    /**
     * 重新获取WiFi信息
     */
    public void againGetWifiInfo() {
        wifiInfo = wifiManager.getConnectionInfo();
    }

    /**
     * 是否开启WIFI
     *
     * @return
     */
    public boolean isNetCardFriendly() {
        return wifiManager.isWifiEnabled();
    }

    /**
     * 判断系统当前是否正在连接WIFI
     *
     * @return
     */
    public boolean isConnectioning() {
        return NetworkInfo.State.CONNECTING == getCurrentState();
    }

    /**
     * 判断系统当前是否已连接WIFI
     *
     * @return
     */
    public boolean isConnectioned() {
        return NetworkInfo.State.CONNECTED == getCurrentState();
    }

    /**
     * 获取当前网络连接状态
     *
     * @return
     */
    public NetworkInfo.State getCurrentState() {
        return connManage.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
    }

    /**
     * 设置配置好的网络(指定的)
     *
     * @param ssid
     */
    public void setWifiConfigedSpecifiedList(String ssid) {
        wifiConfigedSpecifiedList.clear();
        if (wifiConfigList != null) {
            for (WifiConfiguration item : wifiConfigList) {
                if (item.SSID.equalsIgnoreCase("\"" + ssid + "\"") && item.preSharedKey != null) {
                    wifiConfigedSpecifiedList.add(item);
                }
            }
        }
    }

    public List<WifiConfiguration> getWifiConfigedSpecifiedList() {
        return wifiConfigedSpecifiedList;
    }

    /**
     * 打开WIFI网卡
     */
    public void openNetCard() {
        if (!isNetCardFriendly()) {
            wifiManager.setWifiEnabled(true);
        }
    }

    /**
     * 关闭WIFI网卡
     */
    public void closeNetCard() {
        if (isNetCardFriendly()) {
            wifiManager.setWifiEnabled(false);
        }
    }

    public void checkNetCardState() {
        if (wifiManager.getWifiState() == 0) {
            Log.e(TAG, "网卡正在关闭");
        } else if (wifiManager.getWifiState() == 1) {
            Log.e(TAG, "网卡已关闭");
        } else if (wifiManager.getWifiState() == 2) {
            Log.e(TAG, "网卡正在打开");
        } else if (wifiManager.getWifiState() == 3) {
            Log.e(TAG, "网卡已经打开");
        } else {
            Log.e(TAG, "没有获取到状态");
        }
    }

    /**
     * 扫描周边网络
     */
    public void scan() {
        /*开始扫描*/
        wifiManager.startScan();
        /*获取扫描结果*/
        listResult = wifiManager.getScanResults();
        /*扫描配置列表*/
        wifiConfigList = wifiManager.getConfiguredNetworks();
        if (listResult != null && !listResult.isEmpty()) {
            Log.e(TAG, "当前区域存在无线网络,请查看扫描结果");
        } else {
            Log.e(TAG, "当前区域没有无线网络");
        }
    }

    /**
     * 获取扫描结果
     *
     * @return
     */
    public List<ScanResult> getListResult() {
        return listResult;
    }

    /**
     * 得到扫描结果
     *
     * @return
     */
    public String getScanResult() {
        /*每次点击扫描之前清空上一次的扫描结果*/
        if (mStringBuffer != null) {
            mStringBuffer = new StringBuffer();
        }
        /*开始扫描网络*/
        scan();
        /*获取扫描结果,保存到列表中*/
        if (listResult != null) {
            for (int i = 0; i < listResult.size(); i++) {
                mScanResult = listResult.get(i);
                mStringBuffer.append("No.").append(i + 1).append(" :").append(mScanResult.SSID).append("->")
                        .append(mScanResult.BSSID).append("->").append(mScanResult.capabilities).append("->")
                        .append(mScanResult.frequency).append("->").append(mScanResult.level).append("->")
                        .append(mScanResult.describeContents()).append("\n\n");
            }
        }
        Log.e(TAG, mStringBuffer.toString());
        return mStringBuffer.toString();
    }

    /**
     * 连接指定网络
     */
    public void connect() {
        wifiInfo = wifiManager.getConnectionInfo();
    }

    /**
     * 断开当前连接的网络
     */
    public void voiddisConnectWifi() {
        int netId = getNetworkId();
        wifiManager.disableNetwork(netId);
        wifiManager.disconnect();
        wifiInfo = null;
    }

    public boolean checkNetWorkState() {
        if (wifiInfo != null) {
            return true;
        }
        return false;
    }

    /**
     * 得到连接的ID
     *
     * @return
     */
    public int getNetworkId() {
        return (wifiInfo == null) ? 0 : wifiInfo.getNetworkId();
    }

    /**
     * 得到IP地址
     *
     * @return
     */
    public int getIpAddress() {
        return (wifiInfo == null) ? 0 : wifiInfo.getIpAddress();
    }

    /**
     * 锁定WiFiLock
     */
    public void acquireWifiLock() {
        wifiLock.acquire();
    }

    /**
     * 解锁WIFILock
     */
    public void releaseWifiLock() {
        if (wifiLock.isHeld()) {
            wifiLock.acquire();
        }
    }

    /**
     * 创建一个WiFiLock
     */
    public void createWifiLock() {
        wifiLock = wifiManager.createWifiLock("Test");
    }

    /**
     * 得到配置好的网络中的内容,不管有没有配置密码
     *
     * @return
     */
    public List<WifiConfiguration> getConfiguration() {
        return wifiConfigList;
    }

    /**
     * 制定配置好的网络进行链接
     *
     * @param index
     * @return
     */
    public boolean connetcConfiguration(int index) {
        if (index >= wifiConfigList.size()) {
            return false;
        }
        return wifiManager.enableNetwork(wifiConfigedSpecifiedList.get(index).networkId, true);
    }

    /**
     * 获取MAC地址
     *
     * @return
     */
    public String getMacAddress() {
        return (wifiInfo == null) ? "" : wifiInfo.getMacAddress();
    }

    /**
     * 获取BSSID
     *
     * @return
     */
    public String getBSSID() {
        return (wifiInfo == null) ? "" : wifiInfo.getBSSID();
    }

    /**
     * 获取WIFIinfo的所有信息
     *
     * @return
     */
    public String getWifiInfo() {
        return (wifiInfo == null) ? "" : wifiInfo.toString();
    }

    /**
     * 添加一个网络并链接
     *
     * @param wcg
     * @return
     */
    public int addNetwork(WifiConfiguration wcg) {
        //添加一个网络
        int wcgId = wifiManager.addNetwork(wcg);
        //设置网络可用
        wifiManager.enableNetwork(wcgId, true);
        Log.e(TAG, "添加一个网络");
        return wcgId;
    }

}


https://pan.baidu.com/s/1eSDkkaI