I'm trying to get the signal strength for a 3G connection in a .NET application with the following method: http://msdn.microsoft.com/en-us/library/windows/desktop/dd323166(v=vs.85).aspx

The .NET wrapper returns a uint between 0 and 31. I usually get values between 0 and 4 from the method which translates to -113 dBm and -105 dBm values which would indicate a very weak signal, even though the connection is pretty fast and the connection icon on the Windows task bar shows 4-5 white bars.

What am I doing wrong? What's the proper way of determining the signal strength on a Windows desktop application in .NET?

有帮助吗?

解决方案

You probably aren't doing anything wrong, Microsoft is though.

Your connection is 3G you say, but the Microsoft scale is based on GSM (2G). GSM gives a connection down to -113 dBm, but UMTS gives a connection down to -120 dBm. A different parameter is being measured as well, which makes the Microsoft implementation even less valid.

If we believe the Microsoft scale, your values of 1 - 4 are about -111 to -105 dBm.

In UMTS, this is quite a respectable signal.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top