android WiFi扫描器,仅列出具有特定SSID的网络

时间:2019-01-22 19:32:51

标签: android android-studio android-wifi

我需要在Android设备上创建WiFi扫描器应用。我设法做到了,但是有些事情我不知道该如何处理。

    class WifiReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        sb = new StringBuilder();
        Comparator<ScanResult> comparator = new Comparator<ScanResult>() {
            @Override
            public int compare(ScanResult o1, ScanResult o2) {
                return (o1.level>o2.level ? -1 : (o1.level==o2.level ? 0 : 1));
            }
        };
        lista = wifiManager.getScanResults();
        Collections.sort(list, comparator);
        for (int i = 0; i < list.size(); i++) {
            scanResult = wifiManager.getScanResults().get(i);
            sb.append(new Integer(i + 1).toString() + ". " + (list.get(i)).SSID + "  " + (list.get(i)).BSSID + "  " + (list.get(i)).level + "\n");
        }
        txt.setText(sb);
        wifiManager.startScan();
    }
}

建筑物中有多个具有相同SSID的WiFi网络,比方说ABCD。我想保存为list类型的List<ScanResult>,仅保存具有此特定SSID ABCD的网络,而无需创建其他字段,例如list。非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我假设您的意思是您想要一种过滤扫描并仅返回指定ssid的方法,而我在后端不知道这样做。您可以浏览现有列表,然后拉出所需列表,然后保存到新列表中。
您还可以使用现有代码并检查ssid是否在循环内匹配,并且仅在匹配时才构建字符串。
大多数情况下,您会在列表或“回收者”视图中显示可用网络的列表,因此通常使用辅助列表。