35

The connection to my work wifi just failed and below the network my phone is saying "Avoided poor Internet connection". What does this mean exactly? Has the phone detected that it can't get out to the wider Internet or did the network fail to allocate an IP address or something else?

Not sure if it matters but this is on a Galaxy Nexus.

5
  • 1
    Are you using ics?
    – user13391
    May 20, 2012 at 14:16
  • @richardborcsik No I'm not using ICS, its just the phone connecting over wifi on its own. May 20, 2012 at 22:49
  • @LukeQuinane ICS means Ice Cream Sandwich, which in turn means Android 4.0 or greater. Since your device is a Galaxy Nexus, you in fact are using ICS :)
    – onik
    May 21, 2012 at 12:17
  • 1
    @onik I think he understood it as Internet Connection Sharing.
    – user13391
    May 22, 2012 at 6:52
  • @RichardBorcsik Yeah, I got that, thought that I'd clarify what was meant by ICS in this context.
    – onik
    May 22, 2012 at 7:38

6 Answers 6

14

Poor connection may mean that:

  • there is either a weak signal from your wifi partner device.
  • there is much noise from other systems using the same frequency.

Both mean that many data-packets are lost and have to be retransmitted so your overall throughput goes down.

You can compare this with:

  • somebody is speaking not loud enough
  • many people are speaking at the same time and it is difficult to understand one person in that noise

If you have interference problems it might help to change the wifi channel/frequency

3
  • 1
    Or your device couldn't get a valid IP address and had to fall back to a link-local address, or the connection from the access point to the internet has a high jitter and/or packet loss percentage
    – onik
    May 21, 2012 at 12:20
  • TO confirm @onik's comment, I've been seeing "Avoided poor Internet connection" quite a lot in the last week on hotel wifi, before that message appears, if I open the Wifi section of Settings I can see the connection cycle through "Connecting" and "Obtaining IP Address" for a few minutes before the system gives up and says that it has avoided the poor connection. In this case most likely either an over-loaded wifi AP or DHCP server that has run out of addresses, or a flaky connection that keeps dropping while the phone is connecting to the AP.
    – GAThrawn
    Oct 24, 2012 at 16:42
  • I'm seeing the same device behavior as GAThrawn, but I also have access to packet traces run against the DHCP server that clearly show that (a) the DHCP server is doing exactly the right thing in response to requests from the Android device and (b) after the DHCP server sends its DHCP ACK, the Android device and the local gateway successfully exchange ARP packets. The wifi connection is quite solid, and there are only two other devices on the network.
    – flabdablet
    Apr 26, 2013 at 6:37
11

This problem has been plaguing me ever since I upgraded my Sony Ericcson Experia Pro ("iyokan") from Cyanogenmod 7.2 (Android 2.3.7) to 9.0 (Android 4.0.3) -- until today when I did some more detailed investigation.

It's pretty clearly a defect related to the DHCP client. When it manifests, the device fails to obtain an IP address from any access point, even those with which it had previously had no trouble. Switching to a static IP address works around the problem.

a few minutes ago, I found that deleting the contents of /data/misc/dhcp and then resetting the device cleared the problem. I'm sure it will happen again, but when it does, I'll know what to do about it.

I hope this information helps someone and perhaps leads to a fix. I can't report it is an official bug because I'm using a nightly build (cm-9-20120819-NIGHTLY-iyokan)

0
10

While @k3b is right in what a poor Internet connection means that's not what's causing the error message to appear. If you actually have connection issues you don't get an error message (pretty counter-intuitive)
It appears that since upgrading to ics people have a problem with this.

Theoretically there should be a setting to switch this off under:

Settings -> Wi-Fi -> Advanced -> Avoid poor Internet connection 

I said theoretically because I don't have it. See if you do and if it solves the problem. If you don't or it doesn't, read on.

There's a root only application on xda-developers that's supposed to solve this. If you don't have or don't want to root, you have to wait for Google to fix this.

1
  • 1
    Annoyingly, I can see the option in settings, but it's unchecked (and I still get the error). Sep 28, 2014 at 17:31
2

I too had this problem on CM9. And the problem was so bad that I could barely connect to my WiFi. So I decided to fix it myself. I wrote an App which now easily solves this problem. You can get it from Google Play.

Now a bit of explanation:

The problem: As you might know, when your device says "Poor connection" the connection is not really poor, it's all about Android messing it up. This can be solved by clearing the contents where Android stores DHCP information, for some reason that data is causing the problem. This information is nothing but lease and pid stuff. As the lease is not human-readable (at lease I don't get it!) I can't tell what exactly wrong that's going on there. But clearing that helps.

The solution: The solution that I built simply automates turning WiFi Off, clearing DCHP information, and then turning WiFi back On. Simple yet perfect solution! :)

4
  • 1
    Can you give us some idea of what your app does to fix this please. I'm just curious if there's some way a non-root user could do this through reconnecting/disconnecting etc even if its more painful?
    – GAThrawn
    Oct 24, 2012 at 16:44
  • @GAThrawn: Yes, the app clears the contents where Android stores it's DHCP information. For some reason that data is causing all of the problem. As you might know, when it says "Poor connection" the connection is not really poor, it's all about Android messing it up. Now about non-root devices, I fear this solution won't work as to access that DHCP data you need super user permissions. (And that's why the app needs root access.) Oct 24, 2012 at 17:04
  • Interesting. What kind of DHCP information are we talking about here? Leases? Or the configuration? How did you know how to fix it? Where can I find additional information? Is you app open source? If so, where can I review the source?
    – Flow
    Oct 24, 2012 at 19:14
  • Too many questions.. Haha! Yes, it's lease and pid. As the lease is not human-readable (at lease I don't get it!) I can't tell what exactly wrong that's going on there. But clearing that helps. :) I was Googling around for fixing this problem, somewhere (unfortunately, I don't remember where) I read that it's the problem with DHCP info. So gave try to clearing it manually, and it worked! My app only automates turning WiFi Off, clearing DCHP lease and pid, and then turning WiFi back On. Simple yet perfect solution! ;) Oct 25, 2012 at 6:46
1

This also occurs if the device is unable to contact the DHCP server.

0
0

When I had this issue, I edited the gateway of the WiFi network in advanced WiFi settings to be the same as the proxy address. This solved the issue for me.

1
  • 2
    Could you please explain How to do this? The question does not say anything about a proxy being used. What settings should that be, and where to find them?
    – Izzy
    Dec 21, 2012 at 6:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .