在Optidiy的设计之初,便决定添加一个“快速设置”的功能,快速设置主要针对蓝牙、WIFI等设备的快速开关设置,从而跳过windows mobile的层层设置。
蓝牙的开关设置开发比较顺利,而WIFI的开关则与蓝牙不同,蓝牙是调用BthUtil.dll中函数实现功能,WIFI则没有类似的动态链接库。WIFI的开关在windows mobile系统中本质上为WIFI设备的电源管理,那么只要我们知道了WIFI设备的名称并对其进行电源管理即可完成设备的打开/关闭。
而Windows Mobile系统的coredll.dll动态连接库中,提供了电源管理的API函数,那么接下来的问题则是:
1、如何获取WIFI设备名称
对于获取WIFI设备名称,我通过google找到了相关方法,windows mobile中WIFI设置的名称保存在固定的注册表键值中,那么 我们只需操作注册表读出键值即可。
2、如果调用电源管理的函数
至于调用电源管理函数,只要遵循C#调用API函数的方式即可,我们需要知道的是相关电源管理的函数,在实现WIFI打开/关闭功能的代码中我主要用到两个API函数,分别为:SetDevicePower、GetDevicePower
具体实现代码如下:
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using Microsoft.Win32;
namespace Opti