Используйте зарегистрированный BroadcastReceiver
для получения намерений с действием: WifiManager.NETWORK_STATE_CHANGED_ACTION
.
В этом BroadcastReceiver вы можете извлечь объект NetworkInfo из намерения:
NetworkInfo ni = (NetworkInfo) intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
Затем обработайте ni.getState()
для проверки подключений / отключений от сетей Wi-Fi.
Это то, что вы искали?
Редактировать после ответа
Так что, если вы хотите узнать, какие сети Wi-Fi доступны, используйте WifiManager.getScanResults () Это дает вам список ближайших точек доступа в Scanresult
объектах.Они содержат SSID и BSSID точек доступа, которые являются соответственно их сетевым именем и MAC-адресом.
Вы можете получить эту информацию асинхронно, используя BroadcastReceiver
, зарегистрированный для получения намерений с действием WifiManager.SCAN_RESULTS_AVAILABLE_ACTION
.Затем вы будете получать уведомления каждый раз, когда система выполняет сканирование Wi-Fi, и вы можете проверить, появился ли новый SSID (т.е. имя сети) с момента последнего сканирования.
И, наконец, если вы хотите сканировать чаще, чемсистема делает по умолчанию, вы можете запустить Wi-Fi сканирования, используя WifiManager.startScan()
.