How to fix Android Cellular data and Wi-Fi network connected and working but with exclamation points
The solution provided in this guide requires a rooted Android phone, but other suggestions not requiring root privileges are listed at the bottom as well.
My Android phone Xiaomi mi-4c, rooted and running the latest stable Mokee Marshmallow ROM, showed two strange errors Yesterday. Both Cellular data and WiFi connection prompted me to "Sign in to network", respectively "Sign in to Wi-Fi network". When I tapped on any of these two notifications, a browser window popped-up shortly, then was minimized before I could tap on any additional settings. This was actually the captive portal server pop-up trying to verify internet connectivity and failing.
While both the mobile data connection and Wifi network connection showed these 2 errors, they both seem to be working just fine. I could open any webpage and use any app that required internet access, while I was connected to WiFi or using Cellular data. The WiFi connection showed it was connected but without internet, although internet was working properly. Due to this error (no internet) my phone was not connecting to my home network automatically anymore - this is actually a feature introduced in Android 5.1, to not auto-connect to a known WiFi network marked as not having internet access.
At first I thought the daylight savings time might have something to do with it, since it just happened that these errors appeared on the exact day daylight savings time kicked in. So I checked both the router and the phone's date and time settings. After manually setting them to the same exact date and time and rebooting both the router an the phone, I noticed the errors persisted, so the time settings were not to blame in my case.
Next I suspected the router might be the problem, so I double checked every configuration on my router, firmware up-to-date, etc. Since I got an exclamation mark for both the WiFi network and the Cellular data, I excluded the router as being the cause and focused on finding a fix within the Android environment.
After trying to configure different settings related to WiFi and Data connections, I ended up doing the following. Note that this requires a rooted Android phone:
- Install a terminal app. I used Terminal Emulator for Android. The following commands can also be run via the adb shell.
- Open the terminal app and run
su. In my case I opened Terminal Emulator for Android, typed "su" (without quotation marks). This prompted my Mokee Marshmallow ROM to ask for root permissions for Terminal Emulator for Android. I granted them.
settings get global captive_portal_server. This will show what is your current captive portal server set to. I got a "null" reply in my case.
settings put global captive_portal_server YOUR_SERVER_ADDRESS. In my case I added google.com as my captive portal server, more exactly, I ran "settings put global captive_portal_server google.com".
- Run Exit once to exit from su, then Exit one more time to close the terminal.
- Reboot the Android device. Will not work without a reboot.
Both errors were gone after this and everything worked as before.
Other things to try if your Android device is not rooted or you don't want to fiddle with terminal commands:
- Check if an Android update is available for your model and update accordingly. It might fix this error.
- Toggle Airplane mode On/Off.
- Reboot your device.
- Power off your phone. Remove your SIM card. Turn on your phone. Power off your phone. Re-insert your SIM card. Boot your phone.
- Check DNS settings for both your router and your phone. Try to manually set DNS servers to Google's public DNS servers 22.214.171.124 and/or 126.96.36.199.
If you encountered this problem and something else worked for you, please share your solution in the comments section below.