私は公共Wi-Fiアクセスポイントをスキャンする必要があるプロジェクトで作業しています。Android Wi-Fiスキャン:ScanResultのプリンタをフィルタリングします
for (ScanResult scanResult : wifiList) {
if (!(scanResult.capabilities.contains("WEP") ||
scanResult.capabilities.contains("WPA") ||
scanResult.capabilities.contains("WPA2"))) {
openWifiList.add(scanResult);
}
}
それは私も近くにプリンタを得ることを除いて、正常に動作します:
現在、私はこのようなScanResult
をフィルタリングしています。
スキャン中、電話機はネットワークに接続されていません。
AndroidのWi-Fi設定に表示されているWi-Fi接続のリストと同じリストを取得すると仮定します。しかし、Wi-Fi設定ではこれまでに表示されたプリンタはありません。だから、1のための
)私は、は、プリンタが実際にそのよう見えるはずのプリンタは全くScanResult
リストに表示することを、それは奇妙だと思いますか?
UPDATE:すべてのWi-Fiのプリンタが表示されていない、例えば、私はそれにいくつかのヒントを得た、そしてそれが現れているプリンタのように思える、特別な機能を持っていますHPプリンタは、HPワイヤレスダイレクトの機能をサポートしています(例: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名のフィルタリングしか考えられませんでしたが、それはあまり効率的で信頼性の高いものではありません。
ありがとうございます。
ScanResultの機能フィールドが何らかのヘルプになる可能性があるかどうかを確認します。 –
@AshishPathakはもちろん私が試した最初のものの1つでした。 「通常の」アクセスポイントの機能でもある機能「ESS」のみを表示します。 – soey