问题
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?
回答1:
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.
来源:https://stackoverflow.com/questions/19040252/3g-signal-strength-on-windows-desktop