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

  • 相关阅读:
    ios UIWebView截获html并修改便签内容(转载)
    IOS获取系统时间 NSDate
    ios 把毫秒值转换成日期 NSDate
    iOS  如何判断当前网络连接状态  网络是否正常  网络是否可用
    IOS开发 xcode报错之has been modified since the precompiled header was built
    iOS系统下 的手机屏幕尺寸 分辨率 及系统版本 总结
    iOS 切图使用 分辨率 使用 相关总结
    整合最优雅SSM框架:SpringMVC + Spring + MyBatis 基础
    Java面试之PO,VO,TO,QO,BO
    Notes模板说明
  • 原文地址:https://www.cnblogs.com/longqi293/p/1589486.html
Copyright © 2011-2022 走看看