『参考』OpenNETCF的动手实验——WIFI
最近,闲啊,看首页文章都看烦了(不是骂就是被骂,唉~~~),索性来鼓捣一下OpenNETCF这个玩意儿,这篇文章就从WIFI的控制开始说起吧。
首先,你可能会上网搜“.net cf msdn wifi"这个关键词,不管如何吧,肯定会看到MSDN的一篇介绍用OpenNETCF进行WIFI开发的一篇文章,我也看过那篇文章,说的的确不错,但是就是感觉怪怪的。
首先,那篇文章中使用的方法比较“老”,因为IDE总提示我有些类库太旧了,建议用新的替换掉。
其次,我只想获取本机的WIFI适配器而不需要像那篇文章获取了所有适配器。
所以,我亲自动手,和大家一起分享一下使用OpenNETCF来操作设备Wifi的经验吧。
在这篇文章中,你将学会使用OpenNETCF类库进行如下操作:
1、获取Wifi设备信息
2、控制Wifi设备的开启或关闭
3、搜索周围的接入点,并显示他们的信号强度及名称
好吧,下面,我们就来一步一步的开始动手实验:
1、首先,我们建立一个新的移动设备项目:SDF-Wifi,使用.netCF 2.0类库足够,然后平台嘛,我选择的是WM5 PPC。
2、引入OpenNETCF类库(添加引用——》OpenNETCF.Net、OpenNETCF.WindowsCE),至于这个类库大家可以到其官网下载:www.opennetcf.org 下载社区版就行了。再在程序主窗体的头部添加引用:
using OpenNETCF.Net.NetworkInformation;
using System.Runtime.InteropServices;
using OpenNETCF.WindowsCE;
3、进行UI界面的设计,这里不再赘述,我完全仿照MSDN那篇文章所描述的UI进行设计,这些内容将会在文章最后给出下载地址。
4、主要代码编写:
1)全局变量:
2)Dll引用
这里给大家说明一下,“设备在注册表中的键值”为:{98C5250D-C29A-4985-AE5F-AFE5367E5006}\+设备名称,其中,键值不会变,至少我看过好多人,使用的键值都没有变,唯一变得是设备名称,这个设备名称是从何而来呢?大家先不急,待你看到代码,自然会明白,很简单的哦!呵呵
3) 其他代码:其他代码将放在下载中,供大家仔细查阅(有点多,放上来就是Code贴了)
5、核心功能代码:
1)获取适配器信息:
如果阅读过MSDN那篇“老文章”的朋友就能明显开出区别了,这里使用了INetworkInterface接口代替了Adapter类,用NetworkInterface.GetAllNetworkInterfaces()代替了AdapterCollection。而这个INetworkInterface是什么呢?你可以参照OpenNETCF的文档:点击查看
而WirelessNetworkInterface这个类以及WirelessZeroConfigNetworkInterface这个类对我们取得无线适配器、接入点的信息比较重要,所以,大家也要看看哦。
在取得了设备上的适配器后,我们就要来查看这些适配器的信息了,具体信息很多,都集中在了WirelessZeroConfigNetworkInterface类中,它的属性多到爆,你慢慢看吧,取出的属性就是我们将要的信息,具体请大家看代码。
2)开启/关闭Wifi功能:
这里看到了吧,是不是很简单,就传入无线设备的键值+设备名,电源状态以及电源命令,其他的由程序自动完成,具体的DevicePowerNotify函数可查阅这里:http://msdn.microsoft.com/en-us/library/ms896927.aspx
SetDevicePower则可以查看这里:http://msdn.microsoft.com/en-us/library/ms889493.aspx
关闭Wifi的代码雷同,只需修改状态参数。
好了,到此为止,这个动手实验就接近尾声了,下面是一些在我的机器上的实验截图:我手机是HTC Touch Viva
打开程序,进入主界面,从下拉菜单中选择搜索到的设备
由于我的Wifi模块暂未开启(用代码进行了InterfaceOperationalStatu的判断),弹出提示!
我们打开Wifi
可以看到正在打开:
最后,重新从下拉列表中选中刚才的无线适配器,获取到适配器现在的状态属性如下:
可以到Wifi选项卡查看更多信息:
我们关闭Wifi吧:挺费电滴(囧~)
至此,整个实验工程结束。你可以在:点击下载,下载到本实验的全部源码,其中已经包含了OpenNETCF引用的类库Dll文件,在项目的Bin\Debug文件夹下。
本实验的环境为:VS2008 TeamSuit,Windows Mobile 6.1,.net CF 2.0框架,在真机HTC T2222上测试通过。
下一次的文章,我将继续扩充这个程序的功能:
1、管理首选节点网络
2、连接到搜索到的临近节点
出处:http://longqi293.cnblogs.com
本博文欢迎大家浏览和转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,在『参考』的文章中,我会表明参考的文章来源,尊重他人版权。若您发现我侵犯了您的版权,请及时与我联系。
本篇博文 by Jack Fan is licensed under a Creative Commons 署名-非商业性使用-相同方式共享 2.5 中国大陆 License.
这是我的公众号,【代码只是副业】