「已注销」
2016-11-02 05:53
采纳率: 12.6%
浏览 1.3k
已采纳

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

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

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • Gordon-高 2016-11-02 06:19
    已采纳
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • viewgroup 2016-11-02 06:15
    
    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;
        }
    
    }
    
    
    
    评论
    解决 无用
    打赏 举报
  • T_world 2016-11-02 06:20
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题