黎波

Windows Mobile Development for Line of Business
posts - 182, comments - 1194, trackbacks - 43, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

Windows Mobile 6 SDK 中的 Cellular Emulator

Posted on 2007-02-14 01:30 黎波 阅读(8235) 评论(37)  编辑 收藏 所属分类: Mobile Tools

现在的 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


我将会在近期陆续介绍 Windows Mobile 6 的新特性和新工具。如果您对我的文章有任何建议或想法,请回复文章或者写邮件给我,谢谢大家的支持!

Feedback

#1楼    回复  引用    

2007-02-14 09:22 by A.Z [未注册用户]
我的ppc不知道有没有wm6的rom...据说是不会有了

#2楼    回复  引用  查看    

2007-02-14 10:34 by Jeffers Yuan      
这个功能确实不错。
因为之前也一直在为WM的测试电话和短信功能而头疼!

#3楼 [楼主]   回复  引用  查看    

2007-02-14 11:42 by Bob Li      
@A.Z
我朋友的多普达838可以刷。

@Jeffers Yuan
以前WM5的时候,可以通过Fake Network来模拟测试。我也是最近才了解到,年后再写篇文章专门介绍。

#4楼    回复  引用  查看    

2007-02-14 12:45 by Bention      
等了这么久,终于等到了一个“CELL EMULATOR” 微软这次值得赞扬。。

#5楼    回复  引用  查看    

2007-02-20 20:50 by JesseZhao      
@Bob Li
多普达838 这个机器我很喜欢,不知道现在多少钱了

#6楼 [楼主]   回复  引用  查看    

2007-02-20 21:34 by Bob Li      
@JesseZhao
多普达838水货现在不到3k吧。具体价格可以参考这里,我就在他的实体店里买的:http://www.8848i.com.cn/

#7楼    回复  引用    

2007-02-26 15:56 by sailor [未注册用户]
在那里下载 Windows Mobile 6 SDK 呢??????????/
QQ:84115357

#8楼 [楼主]   回复  引用  查看    

2007-02-26 15:59 by Bob Li      
@sailor
要3月1日才正式发布,上次是搞错提早发出来了。详细信息可以看这里:http://www.cnblogs.com/upto/archive/2007/02/16/why-wm6sdk-disappeared.html

#9楼    回复  引用    

2007-03-22 22:52 by spirit_only [未注册用户]
@Bob Li
我装了WM6.0(prefessional)的SDK后,第一次运行Cellular Emulator正常,可是再新建了一个帐户后就打不开了。

Runtime Error!
abnormal program termination

这是怎么回事呢?

注:XP+SP2
VS2005(没装SP1)
CF2.0+SP1


#10楼    回复  引用    

2007-03-22 22:53 by spirit_only [未注册用户]
重装后仍然出错!
郁闷,是什么问题呢?

#11楼 [楼主]   回复  引用  查看    

2007-03-23 16:06 by Bob Li      
@spirit_only
“可是再新建了一个帐户后就打不开了”
->请问是新建什么账户?

我还没有遇到这种错误呢...

#12楼    回复  引用    

2007-03-25 10:58 by spirit_only [未注册用户]
@Bob Li
就是新建一个windows XP的用户帐户,这个帐户也是管理员权限的。

#13楼 [楼主]   回复  引用  查看    

2007-03-25 11:08 by Bob Li      
@spirit_only
你是新建了用户之后,用新的用户登陆出错,还是新建完之后,就出错了?

#14楼    回复  引用    

2007-03-26 23:28 by spirit_only [未注册用户]
@Bob Li
新建用户后,用新的用户登录后,然后双击就会出错,不知道是不是我系统的问题,还是Cellular Emulator的bug。

最郁闷的是,即使我重装了SDK也没用,还是一样的错误。

如果解决不了就只好再Ghost一次系统了,!!!唉……(谁让我喜欢这种好东东呢^^)

#15楼    回复  引用    

2007-03-28 14:55 by 汤逊湖愚民 [未注册用户]
我的Cellular Emulator根本不能运行

跳出一个红叉叉

COM17 is used, pleaseverify

屏幕一闪就Over了

我的机器以前装了个蓝牙,虚拟了3~13的蓝牙串口,后来把蓝牙驱动卸掉还是不行,同样的错误

#16楼    回复  引用    

2007-03-28 15:00 by 汤逊湖愚民 [未注册用户]
在哪里修改这些配置呢

我的系统是 XP SP2

VS2005 SP1
不知道问题在哪里,现在MS的东西越来越难伺候了,这样不好啊

#17楼 [楼主]   回复  引用  查看    

2007-03-28 15:27 by Bob Li      
@汤逊湖愚民
没遇到这个问题:(
好像这个东西问题挺多,不过我都没有遇到...

#18楼    回复  引用    

2007-03-29 09:49 by 汤逊湖愚民 [未注册用户]
串口的问题

由于Cellular Emulator使用了虚拟串口,同一些蓝牙驱动的虚拟串口冲突

我以前安装了一个IVT的BT棒,结果Emulator提示串口已经占用,后来删除IVT的东西,重装WM6 SDK就OK了

#19楼    回复  引用    

2007-04-16 23:22 by somebody [未注册用户]
为了合标准的wm6 image兼容,Cellular Emulator添加了几个虚拟串口,可能会和其他提供虚拟串口的驱动冲突。

#20楼    回复  引用    

2007-04-17 14:57 by whoever [未注册用户]
请问一下,您是否试过中文sms的传输?
我在cellular emulator里面试着输入中文,
但显示出来的都是?问号,
我不知道是否因为我电脑是英文版Windows的原因。
不知你是否测试过在中文Windows下可以使用
cellular emulator和device emulator进行中文短信的传输处理试验?

#21楼 [楼主]   回复  引用  查看    

2007-04-17 15:01 by Bob Li      
@whoever
现在中文的WM6镜像还没有出来,5月1日应该会出来,到时候就可以测试中文的了。

#22楼    回复  引用    

2007-06-17 02:03 by Goldy [未注册用户]
使用Windows Mobile 6 Localized Emulator Images - 0804 CHS Chinese Simplified, 在cellular emulator 输入中文 sms, device emulator 还是会出现乱码, 根本看不到中文。 我现在的手机是用 Windows Mobile 6 Standard Edition, 目前都看不到中文, 请问要如何在手机里才能看到中文呢? 感激不尽。。。

#23楼 [楼主]   回复  引用  查看    

2007-06-17 17:28 by Bob Li      
简体中文的仿真器镜像确实也不能显示中文;你的手机是简体中文的也看不到中文吗?

#24楼    回复  引用    

2007-09-20 11:41 by heywap [未注册用户]
据我所知,即使安装了mobile 6的简体中文image,也无法正常发送中文短信.
我从蜂窝仿真往设备仿真发送中文短信,设备仿真根本无法收到.
但是英文一切正常.

#25楼 [楼主]   回复  引用  查看    

2007-09-22 14:26 by 黎波      
@heywap
确实不支持中文,很遗憾的说:(

#26楼    回复  引用  查看    

2008-04-09 16:53 by Michael.Wang      
刚刚 有人问起Windows Mobile 6 SDK 中的 Cellular Emulator 问题 ,一头雾水,google 一下 看到大作,受益不少,跟进中.........

#27楼    回复  引用    

2008-04-29 00:09 by 东方晓 [未注册用户]
那么要开发,2005打接电话的程序, 是否可以用到这个功能呢, 2005的的手机多不多?有这个必要没有.??

#28楼 [楼主]   回复  引用  查看    

2008-05-06 12:51 by 黎波      
@东方晓
这个工具就是用来模拟打电话、发短信功能的。

#29楼    回复  引用    

2008-05-27 14:44 by FHB_WO [未注册用户]
我按照你的方法设置后,模拟器没有显示电话的网络,不能测试短信,我装的WM6.0的SDK,Cellular Emulator显示COM3,我查看了虚拟串口,注册表中存在,在CMD.EXE中查看没有占用,只有在模拟器中设置后查看才占用,那为什么我的模拟器不能测试,请黎老师,帮忙分析并指导下,万分感谢!!!!!!!!

#30楼    回复  引用  查看    

2008-05-31 11:57 by 傻样精英      
我也是哦。是不是跟vista有关?
我都是com5,下拉列表里面没有,我手工写的,也是没显示电话网络,不能用

#31楼 [楼主]   回复  引用  查看    

2008-06-21 11:44 by 黎波      
@FHB_WO
试一试:6. 点击“File-->Reset-->Soft”菜单项,对仿真器进行软重置操作。

#32楼    回复  引用    

2008-06-21 12:27 by abccba [未注册用户]
写得很好。感谢。

#33楼    回复  引用    

2008-07-31 09:34 by 阿佛 [未注册用户]
好文章,现在每天都来看,呵呵

#34楼    回复  引用    

2008-08-15 18:47 by alana [未注册用户]
能说一下怎么用 cellular emulator 模拟 蓝牙连接么? 可以用这个模拟wifi 么?

#35楼 [楼主]   回复  引用  查看    

2008-08-20 18:55 by 黎波      
@alana
不支持模拟蓝牙和wifi。

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-03-17 19:20 编辑过


相关链接: