在我的应用程序( MIN SDK 19 )中,我需要列出来自2.4GHz频段的所有wifi,并区分来自5ghz频段的所有wifi。
我找到了这篇文章,但它与我需要的内容并不完全一致,因为似乎已为Android API中的开发人员删除或隐藏了代码: Scanning for wifi signals only in 2.4Ghz band
在这里您可以找到频率列表: Android wifi getting frequency of the connected Wifi
即使在这里: https://en.wikipedia.org/wiki/List_of_WLAN_channels#2.4_GHz_(802.11b/g/n/ax)
我不了解所有这些频率,因为使用WifiManager会以5 GHz的频率返回我低于2500的频率值。
我需要知道如何获得wifi 2.4GHz频段。
答案 0 :(得分:0)
2.4 GHz 网络的频率在 2400 到 2500 MHz 范围内。
扫描 WiFi 网络后,您会得到一个类型为“ScanResult”的列表,您可以迭代此列表并检查每个元素。
// Get WiFi Scan results
val wifiManager = this.getSystemService(Context.WIFI_SERVICE) as WifiManager
val results = wifiManager.scanResults
// Create a new list to store the filtered WiFis
val wifi24Only = ArrayList<ScanResult>()
// Check each 'frequency' property and add to the list if it is in 2.4 GHz range
for (wifi in results) {
if (wifi.frequency in 2400..2500) {
wifi24Only.add(wifi)
}
}
// The list has only the scanned WiFis which are in the 2.4GHz range
print(wifi24Only)
观察:您必须创建一个新列表(如“wifi24Only”),因为您不应更改“结果”的值,因为 wifiManager 仍在使用它。