获得无线网络优势

时间:2011-11-22 05:12:51

标签: c# compact-framework wireless windows-mobile-5.0 opennetcf

我在使用OpenNetCF 2.3版的C#,Compact Framework 3.5,Windows Mobile 5项目中获得无线信号强度时遇到了困难。我的目标是在发送请求之前评估网络访问的强度,因为此设备的网络覆盖范围可能不完整。

在google周围后,我找到了两个可能的线索。 Microsoft的一个示例项目,它使用现在的AccessPoint类,在OpenNETCF 2.3中标记为已弃用,以及一些建议说在SignalStrength类上使用WirelessNetworkingInterface属性。这似乎是理论上的一个好主意但是工厂方法似乎应该返回此类OpenNETCF.Net.NetworkInformation.WirelessNetworkInterface.GetAllNetworkInterfaces()而不是返回INetworkInterface类,它不会公开SignalStrength属性。

有没有人设法使用OpenNETCF 2.3评估无线强度? 我不明白这个包的正确用法吗?或者有没有人为此问题制定了解决方案?

任何指导或帮助都非常有用。

1 个答案:

答案 0 :(得分:5)

GetAllNetworkInterfaces()返回INetworkInterface接口数组,因为您可能(并且经常会)在同一设备上具有不同的具体类型。问题是您为无线网卡获取的实例类型是什么?它将是NetworkInterfaceWirelessNetworkInterfaceWirelessZeroConfigNetowrkInterface。您可以将接口版本转换为具体类型,然后获得信号强度,前提是它可以公开该信息。

foreach (var ni in NetworkInterface.GetAllNetworkInterfaces())
{
    var wzc = ni as WirelessZeroConfigNetworkInterface;
    if(wzc != null)
    {
        Debug.Writeline("WZC Signal: " + wzc.SignalStrength.Decibels);
        continue;
    }

    var wni = ni as WirelessNetworkInterface 
    if(wni != null)
    {
        Debug.Writeline("Wireless Signal: " + wni.SignalStrength.Decibels);
        continue;
    }

    Debug.Writeline("No signal info available");
}