Мне нужно создать приложение для сканирования WiFi на устройстве Android. Мне удалось это сделать, но есть кое-что, с чем я не знаю, как справиться.
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();
}
}
В здании есть несколько сетей Wi-Fi с одинаковым SSID, скажем, ABCD. Я хочу сохранить в list, который является типом List<ScanResult>, только сети с этим конкретным SSID ABCD без необходимости создания другого поля, такого как list, если это возможно. буду благодарен за любую помощь
Я предполагаю, что вы имеете в виду, что вам нужен способ отфильтровать сканирование и вернуть только указанный ssid, я не знаю способа сделать это на серверной части. Вы можете просмотреть свой существующий список и выбрать те, которые вам нужны, и сохранить их в новый список.
.
Вы также можете использовать свой существующий код и проверить, соответствует ли ssid внутри вашего цикла, и построить строку только в том случае, если это так.
Большую часть времени вы будете показывать список доступных сетей в виде списка или переработчика, поэтому обычно лучше использовать вторичный список.