networking - Android wifi hosed after reenabling previous AP via wifimanager -
in app connect wifi access point using wifimanager using phone call described in docs tell phone call enablenetwork , pass true sec parameter disable other networks:
wifimanager.enablenetwork(networkid, true); the side effect after disconnect access point, network connected still disabled. if in wifi settings listed "turned off.".
i leave state of of connected network found it. in order save off state of configured networks before add together new network , restore enabled states afterward disconnecting new network:
private void savewifistate() { final wifimanager wifimanager = (wifimanager) context.getsystemservice(context.wifi_service); waswifienabled = wifimanager.iswifienabled(); savednetworks = wifimanager.getconfigurednetworks(); } private void restoresavedwifistate() { final wifimanager wifimanager = (wifimanager) context.getsystemservice(context.wifi_service); if (!waswifienabled) { wifimanager.setwifienabled(false); } // when connected specified network disabled others. // restore enabled state enabled. if (savednetworks != null) { (int = 0; < savednetworks.size(); ++i) { if (savednetworks.get(i).status == wificonfiguration.status.current || savednetworks.get(i).status == wificonfiguration.status.enabled) { wifimanager.enablenetwork(savednetworks.get(i).networkid, false); } } } } } public void disconnect() { final wifimanager wifimanager = (wifimanager) context.getsystemservice(context.wifi_service); wifimanager.removenetwork(networkid); restoresavedwifistate(); wifimanager.saveconfiguration(); } when run code on samsung galaxy tab 4 10.1 (sm-t531) running android 4.4.2 leaves wifi in bad state. scanning aps no longer works. "scan requested (ret=-16) - scan timeout 30 seconds" followed "failed initiate ap scan" wpa_supplicant in logcat.
if got wifi settings , seek reconnect network connected using saved password fails "ctrl-event-assoc-reject" message wpa_supplicant in logcat. have reboot or turn on/off aeroplane mode in order able connect network again.
any ideas on why calling enable network set wifi in bad state? there improve way preserve original enable state of other networks?
android networking wifi android-wifi
No comments:
Post a Comment