做网络诊断,需要诊断当前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; }
总结 以上是内存溢出为你收集整理的Android获取当前连接wifi的信道全部内容,希望文章能够帮你解决Android获取当前连接wifi的信道所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)