现在的 Windows Mobile 设备大多数都拥有电话和其他无线通信的功能。在许多情况下,你想让你的应用程序跟这些通信功能进行交互。例如,你想在电话响起的时候,将你的应用程序播放音乐的声音调小;或者需要直接对通信硬件进行各种操作。那么开发这种类型的应用程序往往比较困难,最大的难点在于测试应用程序。为了解决测试这种应用程序的困难,Windows Mobile 6 SDK 包含了 Cellular Emulator(蜂窝仿真器)。Cellular Emulator 让你能够在 Device Emulator 中,测试你的应用程序在各种蜂窝通信的情况下的行为。Cellular Emulator 是一个强大的测试工具,它可以用于测试你的应用程序在蜂窝通信状况变化时的行为。用 Cellular Emulator 可以执行一些简单的测试,如:在仿真器中拨打电话,接听来电和挂断电话,发送和接收 SMS 信息等。为了让开发人员可以测试更复杂的功能,Cellular Emulator 还支持对 SIM 配置信息的修改,还有选择2G网络还是3G网络。所有这些测试工作都不需要用到一台物理设备。
要让 Cellular Emulator 和 Device Emulator 可以一起配合使用,首先你需要把他们关联起来。1. 记下 Cellular Emulator 左下角状态栏的 COM 端口号。如 COM5。2. 在 Device Emulator 中选择“File-->Configure...”菜单项,打开 Emulator Properties 对话框。3. 在 Emulator Properties 对话框中选择 Peripherals 选项卡。4. 把刚才记下的 COM 端口号输入到 Serial Port 0 文本框中。如果你在下拉列表中找不到你的端口号,可以自己输入进去。5. 点击 OK 按钮保存设置,关闭 Emulator Properties 对话框。6. 点击“File-->Reset-->Soft”菜单项,对仿真器进行软重置操作。待仿真器完成重置过程并重新启动后,你将会看到仿真器的蜂窝网络已经可用了。如果还是不行,可能是安装了 Windows Mobile 6 SDK 之后,没有重新启动系统的原因吧。给仿真器拨打电话打开 Cellular Emulator 的 Call Manager 选项卡,在 Phone Number 文本框中输入任意一个电话号码,点击旁边的 Dial 按钮,仿真器的电话铃声将响起,并显示来自所输入的电话号码的来电。这时在 Active Calls 列表中将出现仿真器上的活动通话,Status 显示为 Incoming。用7272024这个电话号码向仿真器拨打电话:仿真器收到电话号码为7272024的来电:从仿真器拨打电话在 Preset Number 列表中提供了4个可供测试的电话号码。Busy 表示线路忙,Reject 表示拒绝接听,Hang Up After Connect 表示接听后再挂断,No Answer 表示没有回应。尝试在仿真器中拨打7272021,Cellular Emulator 的 Active Calls 列表将显示仿真器当前的活动通话。电话接通后持续了10秒钟,然后挂断,也就是Hang Up After Connect。向仿真器发送 SMS 信息打开 Cellular Emulator 的 SMS 选项卡,在 Send to device 的多行文本框中输入短信内容,然后点击 Send 按钮将短信发送至仿真器。仿真器将收到新短信:还可以设置重复发送。选中 Repeatly 检查框,设定好 Interval(间隔时间)和 Max Count(最大数目),然后再点击 Send 按钮即可。如果你在仿真器中回复了信息,将会在 Cellular Emulator 的 Receive from device 列表中看到你回复的短信。选择网络打开 Cellular Emulator 的 Network 选项卡,可以选择2G或者3G网络,断开 GPRS 连接,查看数据通道等。执行和查看 AT 命令打开 Cellular Emulator 的 Injection 选项卡,这里可以向仿真器发送 AT 命令或事件。打开 Cellular Emulator 的 AT log 选项卡,可以看到刚才所有对仿真器的操作对应的 AT 命令。使用配置文件这里可以选择使用哪一个 SIM 配置文件,文件内容是 XML 格式。总结有了 Cellular Emulator 的配合,Device Emulator 显得更加强大。现在 Windows Mobile 6 开发人员可以使用仿真器进行开发和测试,而不需要购买各种真实设备。遗憾的是,Cellular Emulator 并不支持 Windows Mobile 5.0 和 Windows Mobile 2003 的仿真器。不过好在 Windows Mobile 6 的 API 跟 Windows Mobile 5.0 的绝大部分一样,所以你可以在 Windows Mobile 6 的仿真器中开发和调试 Windows Mobile 5.0 的应用程序。对于 Windows Mobile 2003 可能测试效果没有那么一致,你也可以自己尝试一下。参考:What's New for Developers in Windows Mobile 6