2016-12-19 9 views
1

Использование Android WifiManager для сканирования доступных Wi-Fi-сетей очень просто.Android WifiManager - stopScan

  • Получить дескриптор WifiManager через context.getSystemService
  • Создать Намерение
  • Создать широковещательный приемник
  • Зарегистрируйте этот приемник с вышеупомянутым намерением
  • Подождите
  • Loop через результаты сканирования

То, что я не понял, было та Этот процесс когда-то начинался, просто продолжал катиться. Насколько я могу судить, единственный способ остановить это - отменить регистрацию вещательного приемника, о котором идет речь.

  • Это единственный и правильный способ прекратить сканирование сетей Wi-Fi?
  • Если это действительно не нужно выпускать что-то вроде WifiManager.stopScan (который, судя по всему, не существует)?

Я предполагаю, что устройство продолжает сканировать Wi-Fi-сети по умолчанию, так что позже я смогу использовать один и тот же дескриптор WifiManger, чтобы получить свежий список доступных сетей.

ответ

2

Как вы и предполагали, ОС отслеживает события WiFi в любом случае, используя WiFiManager, вы просто подписываете свое приложение на получение определенных типов уведомлений.

Если ваше приложение больше не интересует их, вы должны аннулировать приемник приложений, избегая ненужных контекстных переключателей на событиях WiFi.

Ссылка для WifiManager не очень описательный, но вы можете найти некоторые намеки на то, что делает OS в ссылке ConenctivtyManager: https://developer.android.com/reference/android/net/ConnectivityManager.html