移动应用程序 调整铃声音量,避免环境噪音
如何处理安装
现在我已经创建了 TooLoud 应用程序代码,要为 Pocket PC 创建安装程序,我必须从若干不同选项中作出选择。如果您是急性子,想要立即尝尝鲜(我当初就是这样),那么您可以使用 Windows Vista? Mobile 设备中心来传输此应用程序。但是,这对于最终用户而言并非是理想做法。另外一种方法是创建 CAB 文件,然后创建 Microsoft Installer (MSI) 安装程序,该安装程序可以从 PC 运行,以便在 Pocket PC 上安装此应用程序。一旦 CAB 文件生成后,您便可以使用一个程序快速生成安装文件,并配备最终用户许可证。但是,您可能更愿意构建一个自定义安装程序,以便从桌面处理对移动电话的部署,从而提供更高级的技术。本部分的结尾将探讨如何使用 Visual C# 2005 来创建自定义安装程序、智能设备 CAB 文件以及部署项目。如果您拥有 Visual Studio 2003,则可以在 msdn2.micro- soft.com/ms838273 找到一份关于实现类似功能的指南。
《MSDN? 杂志》网站上可供您下载完整的项目,其中包括四个主要组件:TooLoud 应用程序、SmartDeviceCab 生成器、CustomInstaller 和 Setup 安装程序。
在 Visual Studio 2005 中,创建智能设备 CAB 的过程很简单。要将智能设备 CAB 项目添加到解决方案,只需单击“解决方案资源管理器”中的解决方案,然后依次选择“添加”|“新项目”、“其他项目类型”|“安装和部署”、“智能设备 CAB 项目”模板,然后单击“确定”即可。现在在“解决方案资源管理器”中,选择您刚刚添加的智能设备 Cab 项目,然后添加 TooLoud 应用程序的主项目输出。
您可以为 SmartDeviceCab 项目设置多个属性;图 6 显示了 Visual Studio 2005 中的属性页。虽然有些属性很简单,但有些则并非如此。例如,OSversionMin 属性如果设置为 4.21,则定义应用程序是否支持屏幕方向感知。但是,此值将不允许在基于 Windows Mobile 2003 和早期版本的 Pocket PC 上安装应用程序。对基于 Windows? 2003SE 和早期版本的 Pocket PC 解决方案来说,Compress 属性和 NoUninstall 设备部署属性必须为 false。(请注意,如果您安装了 .NET Compact Framework 2.0,则 NoUninstall 设备部署属性可以设置为 True。)

图 6 SmartDeviceCab 属性 (单击该图像获得较大视图)
CE Setup DLL 指定了运行安装后操作的文件,这些操作包括配置注册表设置或将应用程序安装为服务等。这后一种情况非常有用,例如,您希望应用程序在后台作为服务运行,能够做出何时运行此应用程序的智能决定。
构建 CAB 文件后,它能够将此应用程序部署到移动电话上,但是关于如何触发复制 CAB 文件并将其安装到移动电话上仍然存在问题。因此,我将创建一个部署项目,该项目会将 CAB 文件安装到系统桌面,然后触发应用程序管理器(参见图 7)。应用程序管理器在 Windows Mobile 设备中心下运行,它是您桌面上的程序,控制安装到移动电话的应用程序。

图 7 Mobile 设备中心和应用程序管理器
我的部署项目与 Visual Studio 模板中所含的桌面部署项目相同。但是,我必须扩展功能,以包括启动应用程序管理器以安装 CAB 文件的任务。我的实现方法是创建一个自定义安装程序类来扩展普通安装程序。该自定义安装程序类会重写两个基类方法 AfterInstall 和 AfterUninstall,然后添加一个方法以启动应用程序管理器。您可以通过访问台式计算机上的注册表来查找应用程序管理器的位置。
图 7 显示了已由我的自定义安装程序启动的应用程序管理器(前台窗口)。我的自定义安装程序的代码如图 8 所示。