В моем приложении я пытаюсь подключиться к определенной точке доступа Wi-Fi. Однако это устанавливает ранее активные сети как «отключенные». Я устанавливаю соединение, вызывая WifiManager.enableNetwork(int netId, boolean disableOthers)
с настройкой disableOthers
в true
, что, по-видимому, необходимо для надежного установления соединения. Таким образом, после повторного включения Wi-Fi вручную (например, с помощью виджета управления питанием) устройство не будет подключаться к предварительно настроенным сетям, которые отображаются в списке как «отключенные». Я попытался обойти это, установив статус каждой ранее активной сети обратно на WifiConfiguration.Status.ENABLED
, используя WifiManager
:
...
List<WifiConfiguration> wifis = wifiManager.getConfiguredNetworks();
...
wifiConfiguration.status = WifiConfiguration.Status.ENABLED;
wifiManager.updateNetwork(wifiConfiguration);
...
wifiManager.saveConfiguration();
Однако, даже если saveConfiguration()
возвращает true (успех), поля состояния сетей по-прежнему имеют значение WifiConfiguration.Status.DISABLED
. Во время операции я получаю следующее сообщение:
03-08 16:14:26.125: W/BackupManagerService(110): dataChanged but no participant pkg='com.android.providers.settings' uid=10060
Я знаю эту старую ошибку Android , но не знаю (т.е. не надеюсь), что это связано с моей проблемой. Я тестирую с Nexus S под управлением 2.3.6.
EDIT :
Просто понял, что при выключении и включении дисплея все настройки возвращаются к нормальным (то есть сети включены). Также отличается (правильное) поведение на других устройствах.