У цій статті ми розглянемо невеликий приклад, як можна дивитися стану включення / вимикання мережі. А також з'ясуємо, як програмно підключитися до мережі.
Для початку проведемо деякі підготовчі роботи. Створимо порожній проект в Android Studio і створимо клас додатки.
Пропишемо його в маніфесті
Отже, в першу чергу нам необхідно отримати від нашої системи сигнал про те, що в системі відбулися якісь події, в нашому випадку це включення і виключення WiFi.
Для цього нам необхідний приймач таких повідомлень. У android є такий компонент як BroadcastReceiver. Він дозволяє слухати зовнішні події і робити реакцію на них. Даний компонент починає виконувати дії з отримання Intent.
Нам необхідно створити клас і пронаследоваться від BroadcastReceiver. назвемо його NetworkMonitor.
Тепер розберемо, що тут написано. Спочатку ми отримуємо об'єкт класу ConnectivityManager. який стежить за станом мережі і потім об'єкт класу NetworkInfo для отримання опису стану мережі. Після цього перевіряємо: ми підключаємося або відключаємося. І потім перевіряємо якщо це Wifi чи ні.
Відмінно. Але як нам тепер його використовувати? Для цього нам необхідно об'єкт цього класу зареєструвати в системі, використовуючи фільтр Intent, в якому будемо вказувати, які події нам необхідно отримувати.
Залежно від завдання, ми можемо реєструвати і відключати в будь-який момент. Давайте ж його запустимо при старті нашого застосування і відключимо, коли наше додатки завершить свою роботу.
Для цього повернемося в клас App та перевизначити наступні методи:
Для того, щоб наш додаток мало доступ до Wifi. пропишемо відразу всі дозволи які нам знадобляться
Якщо запустити наш додаток і подивитися на лог, то побачимо, як ми ловимо сигнал про включенні і виключенні мережі.
Для пошуку мережі нам необхідно піти за таким же принципом.
Створюємо клас і наслідуючи від BroadcastReceiver:
Ми знаходимо все мережі і просто виводимо інформацію по мережах.
Створимо кнопку, після натискання якої буде проводитися пошук.
Натискаючи на кнопку, ми реєструємо наш об'єкт і проводимо пошук.
Якщо запустимо наш додаток, то побачимо всі доступні мережі в радіусі.
У чледущей частини ми розглянемо, як програмно переключаться між різними мережами з додатком.