【问题标题】:How to find all WiFi networks that are not in range?如何找到所有不在范围内的 WiFi 网络?
【发布时间】: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


    【解决方案1】:

    如何从所有 wifi 网络中减去范围内的 wifi 网络?

    【讨论】:

    • 是的,我认为这是一个想法,但我不知道在 wifiManager 中找到网络的确切 API。你能提供一些关于如何找到这些的见解吗?
    • 很抱歉跟进晚了,但我该如何优化上述的。因为如果配置的网络数量多,那么获得结果将需要更多时间。
    • 这应该不是问题。配置的网络存储在您的设备上,因此可以快速检索它们。慢是寻找范围内的其他网络。获取所有已配置的网络需要多长时间?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 2013-05-04
    相关资源
    最近更新 更多