android wifi信号通道,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 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的信道的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存超频:性能提升不止一点点
- 下一篇: 5820k处理器配什么内存?这3点选择关