Windows Mobile 5.0中为开发人员提供的新功能(4)

http://developer.51cto.com  2007-01-24 14:24  Jim Wilson  51CTO.com  我要评论(0)
  • 摘要:本文从开发人员的观点来了解Windows Mobile版本5.0中的新增功能。它的具体内容包括:Windows Mobile 5.0 API、工具和技术和其他影响开发人员的Windows Mobile 5.0更改。
  • 标签:Windows  Mobile  功能

本机和托管开发人员都可以使用的新增 API

随着 Windows Mobile 平台的发展,越来越多的本机和托管开发人员正在开发丰富的、完善的应用程序。为了满足这两组开发人员的共同需要,Windows Mobile 5.0 的很多新功能直接公开本机和托管 API。包括托管 API 以使其成为 Windows Mobile 5.0 平台本身的一部分,使得这些 API 可供所有托管开发人员使用,而无需考虑应用程序使用的 .NET Compact Framework 的具体版本。

State and Notification Broker API

Windows Mobile 5.0 引入了一种新的非常强大的工具,称为 State and Notification Broker API。State and Notification Broker API 提供用于存储设备、应用程序和系统状态信息的统一机制。它不仅是一个统一的存储,而且还提供了集中式通知体系结构,从而使应用程序可以容易地注册通知,并且可以选择在感兴趣的值更改时启动应用程序。该模型还使应用程序可以容易地共享它们自己的状态信息。

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\StateHKEY_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

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

图片选择对话框

随着应用程序越来越多地合并了照片和图形,这些应用程序需要一种容易的方式来向用户呈现图片列表,以供用户选择。为了满足这一需要,Windows Mobile 5.0 提供了图片选择对话框。该对话框通过 GetFileNameEx 函数提供给本机开发人员;对于托管开发人员,它是通过 Microsoft.WindowsMobile.Forms.SelectPictureDialog 类公开的。

2. 图片选择对话框

图片选择对话框具有高度的可配置性,并且使应用程序开发人员可以用多种方式控制该对话框的行为,包括限制用户可能浏览图像的位置、控制是否允许用户浏览来自附加照相机(如果存在)的图像以及应该如何处理受 DRM 保护的文件。

照相机捕获 API/SHCameraCapture

支持照相机的设备极为受欢迎。由于这些设备的使用范围是如此之广,因此应用程序开发人员现在有机会通过将静止图像和视频图像的捕获直接集成到他们的应用程序中来切切实实地增强用户体验。为了使应用程序开发人员能够轻松地提供该功能,Windows Mobile 5.0 提供了照相机捕获对话框。

照相机捕获对话框为应用程序开发人员提供一种独立于设备的方式,以便将照片、视频和带声音的视频的捕获集成到他们的应用程序中。该对话框为开发人员提供了对照相机捕获过程的完整控制,包括捕获的类型、质量和最大长度(仅限于视频)。本机开发人员通过 SHCameraCapture 函数利用照相机捕获对话框;托管开发人员使用 Microsoft.WindowsMobile.Forms.CameraCaptureDialog


共12页: 上一页 [1] [2] [3] 4 [5] [6] [7] [8] [9] [10] [11] [12] 下一页
【内容导航】
Windows Home Server 家用服务器专题
Windows Server 2008专题
windows网络安全指南
赛门铁克诺顿误杀Windows系统文件 导致百万系统崩溃
Windows系统加固专题
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有