Working with hidden SSID networks
I’ve had a few reports from users having problems connecting to their routers using my app, WiFi Manager. One was kind enough to investigate the problem with me, using a special build with logging. I tracked down the problem to the user having used a hidden SSID in his router settings, which was initially set up as a visible SSID and then changed.
After removing and adding the hidden network once more, so that Android knew from the start that the network was hidden, connectivity worked perfectly again.
Update May 31, 2010: A user reports that this worked perfectly for a while, but then Android couldn’t find the network again. See below for details.
Things to note:
1. Setting up and using hidden SSIDs has a few non-obvious gotchas.
The only correct way to use a hidden SSID network in Android – is to add it with Android’s built-in settings screen. To do this, scroll to the bottom of the network list and select “Add Wi-Fi network”. The network has to be already using a hidden SSID. In this case, connecting to this network works both in Android settings, and in my application.
Update May 31, 2010: It appears that connecting to hidden SSIDs is broken after all. even in Android 2.1update1 and 2.3.1. There is an Android bug report more than year and a half old, with a lot of user comments. Some report that disabling 802.11 “N” and setting the router to “only 802.11 b/g” seems to work better, but some others report that it doesn’t help.
For now my recommendation is to not use hidden SSID networks with Android. Use good security settings, WPA2-PSK-CCMP (aka PSK-AES) and a quality password to stay connected and secure.
This is especially true since hidden SSIDs can be easily discovered.
3. Setting up a network with a visible SSID and then changing it to a hidden SSID causes problems. Android stops seeing the network altogether. By the way, Windows over WiFi stops working also.
4. Update January 17, 2011 For quite some time now, it’s been possible to add hidden networks from within my program, WiFi Manager. Press Menu – Add Network, and make sure to select “Hidden SSID”. This tell Android that the network is hidden, and gives it at least some chance of working.
5. If a hidden SSID network was not set up as above, it won’t show in scan results, neither in Android settings screen, nor in my application. This is correct, since, after all, you wanted the network to be hidden!