Я наблюдаю интересное поведение при работе с Wifi Manager на последних версиях Android (особенно на Pixel). Я пытаюсь подключить диспетчер WIFI к известной точке доступа (устройству IOT).
Google четко перечисляет шаги в сообщении в блоге, если вы используете леденец и выше, вам необходимо привязаться к определенной сети, чтобы убедиться, что ваши сетевые запросы проходят через данную сеть. Шаги можно найти здесь https://android-developers.googleblog.com/2016/07/connecting-your-app-to-wifi-device.html
Перечисленные шаги отлично работают в обычном сценарии (вы ищите точки доступа с помощью сканирования и выполняете добавление сети, потому что это не было настроено ранее). Но если точка доступа подключена вручную из списка Wi-Fi, добавить сеть не удастся (с Android M и выше вам не разрешено изменять конфигурацию Wi-Fi, выполненную другим приложением или системой), и мне нужно подключиться к уже настроенной сети. Этот случай всегда вызывает переключение сети примерно через 20-30 секунд.
Я думаю, это вызвано https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java, потому что Google звонит домой и проверяет, есть ли в сети интернет.
Но я не мог понять, почему это происходит только тогда, когда сеть ранее была подключена из Настройки -> Wi-Fi
Извините за многословный пост, если кто-то знает, почему это происходит, и если есть какой-либо способ предотвратить это, был бы очень признателен. Обратите внимание, что обновить конфигурацию Wi-Fi на M и выше невозможно. Кроме того, отключение сети тоже не помогает. Также интересно, что это происходит только с пикселем, но не на устройстве Samsung (без сетевого агента?).