Windows mobile State and Notification Broker 状态/通知机制

1 State and Notification Broker 状态通知机制

Windows Mobile 5.0设备随附了远远超过100个不同的状态值,这些值提供各种各样的与设备本身和标准Windows Mobile 5.0应用程序有关的信息,可以通过 State and Notification Broker API 获得。我们可以设计应用程序以检索State and Notification Broker API 存储值,或者监视一个或多个值的更改。下面是可以通过State and Notification Broker API 获得的信息的部分示例:

•活动应用程序

•设备的 ActiveSync 状态

•当前电池电平

•是否有照相机连接到该设备

•是否插入了耳机

• Media Player 中当前播放的歌曲名称

•未读的 SMS 信息个数

•未读的电子邮件个数

•当前是否正在通话

•当前是否正在进行会议呼叫

•当前是否可以使用 GPRS 连接

•设备当前是否连接到 VPN

•未接电话呼叫的个数

•电话的移动运营商的名称

•当天预定的任务数

State and Notification Broker 的基础实现依赖于注册表。每个提供程序都会创建一个注册表项,向该项添加值,以表示各个状态值。在提供程序创建该注册表项以后,State and Notification Broker 会监视该值的更改,并且自动通知已经注册了对该值感兴趣的所有各方。所有系统状态属性都存储在HKEY_CURRENT_USER/System/State 或 HKEY_LOCAL_MACHINE/System/State 下面。这些项都被加以保护,允许不受信任的应用程序进行只读访问。应用程序也可以将它们自己的状态值添加到HKEY_CURRENT_USER/System/State 或 HKEY_LOCAL_MACHINE/System/State 中。

2 常用的State and Notification Broker API 本机函数

如果我们希望检索这些状态通知,有多种方式可以选择:Windows消息、回调函数和消息队列。

常用 State and Notification Broker API 本机函数

RegistryNotifyApp

通过将 Windows 消息发送到应用程序窗口,将指定状态值的更改通知给应用程序。如果该应用程序尚未运行,则 State and Notification Broker API 会启动它。

RegistryNotifyWindow

通过将 Windows 消息发送到应用程序窗口,将指定状态值的更改通知给应用程序。

RegistryNotifyMsgQueue

通过向命名的消息队列发送通知,将指定状态值的更改通知给应用程序。

RegistryNotifyCallback

通过调用传递的回调函数,将指定状态值的更改通知给应用程序。

RegistryGetDWORD / RegistryGetString

检索当前状态值。

RegistrySetDWORD / RegistrySetString

由 State and Notification Broker API 提供程序用来创建和修改状态值。

RegistryTestExchangeDWORD

由 State and Notification Broker API 提供程序用来有条件地修改状态值,并且将测试和更新作为单个原子操作予以执行。

注意:要调用这些函数需要包含头文件regext.h

3 例子

具体的实例可查看MSDN 或者Windows Mobile 6 SDK/Samples/PocketPC/CPP/win32/battstat

参考引用:

http://blog.csdn.net/hejianhua/archive/2010/04/13/5479559.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值