zoukankan      html  css  js  c++  java
  • 『参考』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引用

    DLL引用

    这里给大家说明一下,“设备在注册表中的键值”为:{98C5250D-C29A-4985-AE5F-AFE5367E5006}\+设备名称,其中,键值不会变,至少我看过好多人,使用的键值都没有变,唯一变得是设备名称,这个设备名称是从何而来呢?大家先不急,待你看到代码,自然会明白,很简单的哦!呵呵

    3) 其他代码:其他代码将放在下载中,供大家仔细查阅(有点多,放上来就是Code贴了)

    5、核心功能代码:

    1)获取适配器信息:

    Code

    如果阅读过MSDN那篇“老文章”的朋友就能明显开出区别了,这里使用了INetworkInterface接口代替了Adapter类,用NetworkInterface.GetAllNetworkInterfaces()代替了AdapterCollection。而这个INetworkInterface是什么呢?你可以参照OpenNETCF的文档:点击查看

    WirelessNetworkInterface这个类以及WirelessZeroConfigNetworkInterface这个类对我们取得无线适配器、接入点的信息比较重要,所以,大家也要看看哦。

    在取得了设备上的适配器后,我们就要来查看这些适配器的信息了,具体信息很多,都集中在了WirelessZeroConfigNetworkInterface类中,它的属性多到爆,你慢慢看吧,取出的属性就是我们将要的信息,具体请大家看代码。

    2)开启/关闭Wifi功能:

    开启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、连接到搜索到的临近节点

  • 相关阅读:
    fib数列变种题目
    中缀表达式-后缀表达式
    webpy 访问静态文件
    webpy 调试
    树莓派与windows互传文件
    使用图的遍历解决分酒问题
    cogs 48. [NOIP2007] 字符串的展开
    洛谷 P1091 合唱队形
    cogs 1435. [USACO NOV]金发姑娘和N头牛
    codevs 3498 小木棍
  • 原文地址:https://www.cnblogs.com/longqi293/p/1589486.html
Copyright © 2011-2022 走看看