Android は、新しい Wi-Fi ネットワークの近くにいることを通知しますか? デバイスがその Wi-Fi ネットワークに接続するように構成されているかどうかは、デバイスにその特定の Wi-Fi ネットワーク用の Wi-Fi 構成が設定されているかどうかによって異なりますが、新しい Wi-Fi ネットワークに入るたびに通知を受け取ることは可能ですか?
WifiManager クラスを見ましたが、クラス内の状態は、私がやろうとしていることを達成していないようです。何か案は?
1 に答える
BroadcastReceiver
アクションでインテントを受け取るには、登録済みを使用します: WifiManager.NETWORK_STATE_CHANGED_ACTION
。
この BroadcastReceiver では、インテントからNetworkInfoオブジェクトを 抽出できます。
NetworkInfo ni = (NetworkInfo) intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
次にni.getState()
、wifi ネットワークからの接続/切断を確認する処理を行います。
これはあなたが探していたものですか?
回答後に編集
そのため、利用可能な Wi-Fi ネットワークを知りたい場合は、WifiManager.getScanResults()を使用します。これにより、オブジェクト内の近くのアクセス ポイントのリストが得られScanresult
ます。これらには、アクセス ポイントの SSID と BSSID が含まれており、それぞれネットワーク名と MAC アドレスです。
この情報はBroadcastReceiver
、アクションで登録された受信インテントを使用して非同期に取得できますWifiManager.SCAN_RESULTS_AVAILABLE_ACTION
。その後、システムが Wi-Fi スキャンを実行するたびに通知され、最後のスキャン以降に新しい SSID (ネットワーク名) が表示されたかどうかを確認できます。
最後に、システムがデフォルトで行うよりも頻繁にスキャンしたい場合は、 を使用して自分で wifi スキャンをトリガーできますWifiManager.startScan()
。