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