SystemState

 

Windows Mobile 5.0 设备随附了远远超过 100 个不同的状态值,它们可以通过 State and Notification Broker API 获得。这些可用值提供各种各样的,与设备本身和标准 Windows Mobile 5.0 应用程序有关的信息。下表只是可以通过 State and Notification Broker 获得的信息的一部分示例:

活动应用程序

 

设备的 ActiveSync 状态

 

当前电池电平

 

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

 

是否插入了耳机

 

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

 

未读的 SMS 信息个数

 

未读的电子邮件个数

 

当前是否正在通话

 

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

 

当前是否可以使用 GPRS 连接

 

设备当前是否连接到 VPN

 

未接电话呼叫的个数

 

电话的移动运营商的名称

 

当天预定的任务数

 

除了上述项以外,原始设备制造商 (OEM) 和应用程序开发人员还可以扩充该列表。开发人员可以轻松地设计应用程序以检索任何 State and Notification Broker API 存储值,并且如果需要的话,则开发人员可以设计应用程序以监视一个或多个值的更改。

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

如果本机开发人员希望检索通知,则他们具有多个选择,包括 Windows 消息、回调函数和消息队列。那些希望创建通知提供程序的开发人员可以在某个适当的注册表位置下面创建一个项,并且使用RegistrySetDWORDRegistrySetString函数来创建和修改该项下面的值。表 5 列出常用的本机 State and Notification Broker 函数。

5. 常用 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 提供程序用来有条件地修改状态值,并且将测试和更新作为单个原子操作予以执行。

托管开发人员通过使用属于“Microsoft.WindowsMobile.Status”命名空间和同名程序集的类与 State and Notification Broker 交互。标准委托机制用于向托管类发送状态更改通知。 6 显示常用托管类的列表。

6. 常用 State and Notification Broker API 托管类

函数

说明

RegistryState

封装被监视的状态值,包括检索值、监视该值的更改以及在该值更改时根据情况启动应用程序。

SystemState

提供公共系统状态值之上的抽象,并且通过属性提供对这些值的访问。

posted on 2008-01-18 12:05  Moon_Feng  阅读(839)  评论(0编辑  收藏  举报

导航