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