Есть ли способ получить уведомление, когда известные сети Wi-Fi SSIS попадают в/из диапазона?
Я хочу написать приложение, которое состоит в выполнении действий, когда известные Wi-Fi-сети попадают в диапазон или вне диапазона.
Например, скажем, моя домашняя сеть Wi-Fi SSIS - это "WifiHome", и я хочу сделать уведомление "Ты просто ушел из дома!". когда устройство больше не сможет обнаружить эту конкретную сеть.
(Или альтернативно - "Вы только что вошли домой", когда устройство повторно обнаруживает сигналы из этой сети).
Мой вопрос:
Возможно ли прослушивание этих изменений без частого опроса списка доступных сетей?
Ответы
Ответ 1
Вы должны прослушать широковещательное событие SCAN_RESULTS_AVAILABLE_ACTION. Это будет передаваться при каждом завершении сканирования Wi-Fi. Когда такое событие происходит, просто повторите итерацию результатов сканирования, которые могут быть получены с помощью WifiManager getScanResults.
Когда wi-fi активен, вы будете получать эту трансляцию каждые несколько секунд. Но нет способа настроить этот интервал, и я предполагаю, что каждый производитель может изменить этот интервал.
Вы можете вручную запускать wi-fi-сканирование с помощью WifiManager startScan.