Je travaille sur un projet qui doit rechercher des points d'accès Wi-Fi publics.Android Wi-Fi Scan: Filtrer les imprimantes à partir de ScanResult
Actuellement, je suis le filtrage ScanResult
comme ceci:
for (ScanResult scanResult : wifiList) {
if (!(scanResult.capabilities.contains("WEP") ||
scanResult.capabilities.contains("WPA") ||
scanResult.capabilities.contains("WPA2"))) {
openWifiList.add(scanResult);
}
}
Il fonctionne très bien, sauf que je reçois aussi des imprimantes qui sont à proximité.
Lors de la numérisation, le téléphone n'est connecté à aucun réseau.
Je suppose que j'obtiens une liste qui est identique à la liste des connexions Wi-Fi qui est affichée dans les paramètres Wi-Fi sur Android. Mais dans le paramètre Wi-Fi, aucune imprimante ne s'affiche.
Donc, pour 1) Je pense qu'il est étrange que les imprimantes apparaissent dans la liste ScanResult
du tout, cette façon devrait imprimantes être vraiment visible?
MISE À JOUR: pas toutes les imprimantes Wi-Fi sont visibles, je suis arrivé quelques conseils à ce sujet, et il semble que les imprimantes qui font leur apparition, ont une fonctionnalité spéciale, par exemple Les imprimantes HP prennent en charge la fonctionnalité HP Wireless Direct (voir par exemple https://h30434.www3.hp.com/t5/Inkjet-Printing/Printer-SSID-appearing-on-my-wi-fi-list/td-p/1705073 et https://support.hp.com/rs-en/document/c04577030).
Et 2) est-il possible que je puisse vérifier si le ScanResult
appartient à une imprimante? Jusqu'à présent, je ne pouvais penser qu'au filtrage des noms SSID courants, mais cela ne serait pas très efficace ni fiable.
Merci pour vos suggestions.
Vérifiez si le champ de capacités de ScanResult peut vous aider. –
@AshishPathak c'était bien sûr l'une des premières choses que j'ai essayées. Il montre seulement la capacité "ESS" qui est aussi une capacité de points d'accès "normaux". – soey