Я работаю над проектом, который должен сканировать общедоступные точки доступа Wi-Fi.
В настоящее время я фильтрую ScanResult
следующим образом:
for (ScanResult scanResult : wifiList) {
if (!(scanResult.capabilities.contains("WEP") ||
scanResult.capabilities.contains("WPA") ||
scanResult.capabilities.contains("WPA2"))) {
openWifiList.add(scanResult);
}
}
Он отлично работает, за исключением того, что у меня также есть принтеры, которые находятся поблизости.
Во время сканирования телефон не подключен к какой-либо сети.
Я бы предположил, что получаю список, идентичный списку Wi-Fi, который показан в настройках Wi-Fi на Android. Но в настройках Wi-Fi принтер пока не отображается.
Итак, для 1) Мне кажется странным, что принтеры отображаются в списке ScanResult
вообще, , если принтеры действительно будут видны таким образом?
ОБНОВЛЕНИЕ: не все принтеры Wi-Fi видны, у меня есть некоторые намеки на это, и кажется, что принтеры, которые появляются, имеют специальную функциональность, например. Принтеры HP поддерживают функциональность HP Wireless Direct (см., Например, https://h30434.www3.hp.com/t5/Inkjet-Printing/Printer-SSID-appearing-on-my-wi-fi-list/td-p/1705073 и https://support.hp.com/rs-en/document/c04577030).
И 2) есть ли способ проверить, принадлежит ли ScanResult
к принтеру?
До сих пор я мог думать только об фильтрации для общих имен SSID, но это не будет очень эффективным или надежным.
Спасибо за любые предложения.