Android подключается к точке доступа Wi-Fi, когда экран выключен
Я работаю над проектом, который должен подключаться к Wi-Fi в фоновом режиме, служба работает, когда устройство выключено. Код подключения, как показано ниже:
public boolean connect_android(String ssid) {
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
boolean find = false;
for( WifiConfiguration i : list ) {
if(i.SSID != null && i.SSID.equals("\"" + ssid + "\"")) {
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
find = true;
break;
}
}
в то время как после выполнения кода подключения в фоновой запущенной службе устройство никогда не подключится к Wi-Fi успешно, пока не включится экран. Я зарегистрировал состояние соискателя, оно в полном состоянии. Как говорит Google Docs:
Это состояние указывает, что соискатель завершил свою обработку для фазы ассоциации, и что соединение для передачи данных полностью настроено. Однако обратите внимание, что с этим соединением еще не может быть IP-адрес. Как правило, запрос DHCP должен быть отправлен в этот момент, чтобы получить адрес.
Поэтому я могу прийти к выводу, что при включении экрана отправляется запрос DHCP, устройство получает IP-адрес, и соединение успешно установлено. Но кто отвечает за отправку DHCP, wpa_supplicant или платформы Android, есть ли какие-либо документы по этому поводу? Как я могу подключиться к точке доступа Wi-Fi без включения экрана? Заранее спасибо!
1 ответ
Возможно, потому что ваше устройство использует функцию поворота Wi-Fi, когда на экране (Настройки -> Беспроводная связь и сеть -> Настройки WiFi -> (кнопка меню) Дополнительно -> Политика сна Wi-Fi) Ваше приложение не может подключиться к сети