【发布时间】:2023-03-23 12:31:02
【问题描述】:
我正在编写一个应用程序来显示 WiFi 网络类型和状态。如何找到所有“不在范围内”的 WiFi 网络?是否可以获得超出范围的所有已配置(以前看到的)WiFi 网络的列表?
我使用下面的代码得到结果
WifiManager mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
List<WifiConfiguration> configs = mWifiManager.getConfiguredNetworks();
List<ScanResult> results = mWifiManager.getScanResults();
if (configs != null) {
for (WifiConfiguration config : configs) {
for (ScanResult result : results) {
if (result.SSID == null || result.SSID.length() == 0) {
continue;
}
else {
if (result.SSID.equals(MyString.removeDoubleQuotes(config.SSID))) {
int level = mWifiManager.CalculateSignalLevel(result.level, 4);
Log.d("MyApp", Config.SSID + " " + level);
}
}
}
}
}
但是如果配置的网络数量很多,那么执行需要很长时间。有没有办法优化这个问题?通过仅获取已配置网络的扫描结果。
【问题讨论】:
标签: android networking wifi