这是我想在.NET CF 3.5(C#)应用程序中做的事情
1)检查无线适配器是否正在工作/活动状态
2)添加具有可用SSID,密码和其他详细信息的首选网络
3)建立与首选网络的连接
我尝试过使用OpenNetCF.Net.NetworkInformation类,但运气不错!我无法检测无线网络.所有网络包括wifi和蓝牙都显示为以太网.
foreach (var networkInterface in NetworkInterface.GetAllNetworkInterfaces())
{
if (networkInterface is WirelessNetworkInterface)
MessageBox.Show("Found a WirelessNetworkInterface");
else if (networkInterface is WirelessZeroConfigNetworkInterface)
MessageBox.Show("Found a WirelessZeroConfigNetworkInterface");
else
MessageBox.Show("Ethernet??");
}
我面临的问题在这里讨论http://community.opennetcf.com/forums/t/11099.aspx.但是没有解决方案.
是否有任何允许我与Wifi交互的.NET CF API?
最佳答案 你是误会.顾名思义,它列出了所有网络接口.蓝牙和Wifi(甚至RNDIS USB连接)都是网络接口,因此将被枚举.基本上,这只是要求NDIS告诉我们它所知道的所有接口.
虽然它是迭代的,但它做了两件事.首先,它询问WZC它是否知道接口(即接口的驱动程序是否注册了WZC).如果确实如此,那么我们就知道它是符合WZC标准的无线设备,我们可以获得更多信息并返回WirelessZeroConfig界面.
然后我们要求NDIS是设备报告为无线的驱动程序.如果是,我们将获得无线的NDIS信息并返回无线接口.
其他所有东西都变成了通用的NetworkInterface.
那么无线设备如何显示为通用的NetworkInterface?简单.它的驱动程序没有向WZC注册,也没有通过NDIS报告它是无线的.我们的代码无法检测到驱动程序未报告的内容.这实际上与较旧的思科卡有些相似,后者使用Cico专有接口来实现无线功能.它们在物理上是无线设备,但由于软件没有告诉我们它,并且由于我们没有查询任何专有API,我们所能做的就是返回适配器的通用NDIS信息.
如果您有这样的设备,唯一的办法是与适配器OEM交谈,看看它们是否有可以使用的API.