Если вы видите тот же SSID, скорее всего, потому что BSSID отличается.
Возможно, вы видите разные маршрутизаторы, которые принадлежат разным сетям, но имеют одно и то же имя (например, «netgear» или «dlink»). Это распространено в плотных жилых районах.
Вы также можете видеть различные маршрутизаторы, которые принадлежат к той же сети . Это будут разные точки доступа в корпоративной сети, например, стратегически расположенные для обеспечения максимального покрытия.
Возможно, вы также видите законно дублированные записи.
У вас есть несколько вариантов решения этих проблем, но общепринятый подход заключается в дедупликации по BSSID, а затем отображении списка SSID с измерителями сигнала.
Проблема с вашим кодом выше в том, что filter()
работает не так, как вы ожидаете. Кажется, вы ожидаете, что он отфильтрует из ssid.equals("")
, тогда как на самом деле filter()
удалит все элементы, которые не соответствуют критериям. Вы можете увидеть пример этого на странице документации Stream
.
Вы хотите изменить .filter(ssid -> ssid.equals(""))
на
.filter(ssid -> !ssid.equals(""))