C# 我是否获得了正确的WiFi信号dBm读数?

C# 我是否获得了正确的WiFi信号dBm读数?,c#,networking,wifi,wireless,C#,Networking,Wifi,Wireless,下面的此功能从系统获取WiFi信号。它当前在我的表单上显示一个0,表示我假设的连接很强。我在公司网络上的工作场所HP上运行此计算机。它似乎没有外部WiFi按钮之类的。我得到的0是真实值还是需要在真实的无线设备上进行测试 public static int GetSignalStrengthAsInt() { Int32 returnStrength = 0; ManagementObjectSearcher searcher = null; try {

下面的此功能从系统获取WiFi信号。它当前在我的表单上显示一个0,表示我假设的连接很强。我在公司网络上的工作场所HP上运行此计算机。它似乎没有外部WiFi按钮之类的。我得到的0是真实值还是需要在真实的无线设备上进行测试

public static int GetSignalStrengthAsInt()
{
    Int32 returnStrength = 0;
    ManagementObjectSearcher searcher = null;
    try
    {
        searcher = new ManagementObjectSearcher( 
            @"root\WMI", 
            @"select Ndis80211ReceivedSignalStrength 
              from MSNdis_80211_ReceivedSignalStrength 
              where active=true");

        // Call the get in order to populate the collection
        ManagementObjectCollection adapterObjects = searcher.Get();

        // Loop though the management object and pull out the signal strength
        foreach ( ManagementObject mo in adapterObjects )
        {
            returnStrength = Convert.ToInt32( 
                mo["Ndis80211ReceivedSignalStrength"].ToString());
            break;
        }
    }
    catch (Exception)
    {
    }
    finally
    {
        if ( searcher != null )
        {
            searcher.Dispose();
        }
    }
    return returnStrength;            
}

returnStrength目前显示在文本框中。

首先,请注意,我不知道您的开发环境。以下是基于经验的一般指示:

信号强度通常以dB单位或dBm表示 单位

dB用于信噪比。一个相当好的信号正在发出 至少18~20dB

dBm用于接收的纯功率。它通常在这个范围内 -从20dBm到-80dBm非常差

当无法从设备获取信息时,通常会看到0。所以我猜您的值是无效的。

检查我认为它涵盖了您的问题