Сначала убедитесь, что в вашем манифесте есть <uses-permission>
для ACCESS_WIFI_STATE
.
Во-вторых, я не уверен насчет уведомлений для одного соединения, но чтобы получать уведомления обо всем, что видит радио, вы можете запустить сканирование:
wifi.startScan();
Далее, когда я получил успешные результаты, я использовал WifiManager.SCAN_RESULTS_AVAILABLE_ACTION
в IntentFilter
.
Затем в приемнике я использую getScanResults()
от объекта WifiManager
, который также содержит уровень сигнала.
Чтобы остановить его таким образом, просто позвоните по номеру unregisterRecever()
(так что вы захотите сохранить его для ссылок). Я не проверял себя, чтобы увидеть, можно ли изменить код сканирования, чтобы просто проверить текущее соединение, но я знаю, что получил много результатов - сигналы Wi-Fi часто и быстро меняются. Я полагаю, что для мониторинга одного соединения вы также можете просто отфильтровать результаты сканирования и найти то, к которому подключено устройство.
Надеюсь, это немного поможет.