当前位置: 代码迷 >> Android >> Android获取当前联接wifi的信道
  详细解决方案

Android获取当前联接wifi的信道

热度:74   发布时间:2016-04-28 02:02:56.0
Android获取当前连接wifi的信道

做网络诊断,需要诊断当前wifi所在信道是否拥挤,目前只是解决了获取当前wifi所在信道,主要是用ScanResult 的frequency字段,还需要用SSID和BSSID从ScanResults匹配到当前的wifi信号wifiInfo,具体代码如下:


    public static int getCurrentChannel(Context context) {        WifiManager wifiManager = (WifiManager) context                .getSystemService(Context.WIFI_SERVICE);        WifiInfo wifiInfo = wifiManager.getConnectionInfo();// 当前wifi连接信息        List<ScanResult> scanResults = wifiManager.getScanResults();        for (ScanResult result : scanResults) {            if (result.BSSID.equalsIgnoreCase(wifiInfo.getBSSID())                    && result.SSID.equalsIgnoreCase(wifiInfo.getSSID()                            .substring(1, wifiInfo.getSSID().length() - 1))) {                return getChannelByFrequency(result.frequency);            }        }        return -1;    }    /**     * 根据频率获得信道     *      * @param frequency     * @return     */    public static int getChannelByFrequency(int frequency) {        int channel = -1;        switch (frequency) {        case 2412:            channel = 1;            break;        case 2417:            channel = 2;            break;        case 2422:            channel = 3;            break;        case 2427:            channel = 4;            break;        case 2432:            channel = 5;            break;        case 2437:            channel = 6;            break;        case 2442:            channel = 7;            break;        case 2447:            channel = 8;            break;        case 2452:            channel = 9;            break;        case 2457:            channel = 10;            break;        case 2462:            channel = 11;            break;        case 2467:            channel = 12;            break;        case 2472:            channel = 13;            break;        case 2484:            channel = 14;            break;        case 5745:            channel = 149;            break;        case 5765:            channel = 153;            break;        case 5785:            channel = 157;            break;        case 5805:            channel = 161;            break;        case 5825:            channel = 165;            break;        }        return channel;    }


  相关解决方案