WM有约II(一):你在干嘛?
Written by Allen Lee
"你在干嘛?"
我想大多数读者都收到过这样的短信息吧?有时候我在想,能否为手机开发一个应用程序,自动回复当前的状态?不要让想法只停留在脑子里,因为这样是无法产生任何现实意义的。事不宜迟,我们创建一个智能设备项目试试看吧(创建项目的详细步骤可以参见《WM有约(一):你好,CF》)。项目创建好后,就轮到用户界面了,此刻我脑子里的画面是这样的:
图 1
这个用户界面包括上下两个部分,上面的ComboBox用于设置当前的状态,一旦应用程序"发现"查询状态的短信息就会自动回复当前的状态;下面的TextBox用于输入对方的手机号码,单击Ping按钮将会向该手机号码发送查询状态的短信息。
如何发送短信息?
我们知道,这个应用程序是使用短信息来通信的,所以第一个问题就是如何发送短信息。Windows Mobile 6 Professional SDK提供的类库可以协助我们完成这项工作,但在使用之前,我们必须添加相关的引用:
图 2
此外,你还需要引用Microsoft.WindowsMobile.PocketOutlook这个命名空间。现在,你可以使用SmsMessage这个类来发送短信息了:
代码 1
接着就是处理Ping按钮的Click事件了:
代码 2
我正在做……
在实现自动回复之前,我们先要给出可选的状态,也就是填充ComboBox。你可能已经想到很多办法来完成这项工作,这里我将会选择把一个字符串数组绑定到ComboBox的DataSource属性:
代码 3
接着,我们需要截获包含特定内容的短信息,Windows Mobile 6 Professional SDK提供了MessageInterceptor类来协助我们完成这项工作:
代码 4
当然,在使用这个类之前,你得先引用Microsoft.WindowsMobile.PocketOutlook.MessageInterception命名空间。截获的短信息将会交给OnMessageReceived方法处理:
代码 5
模拟运行
由于这个应用程序的运行需要用到通信网络,于是我们需要对模拟器设置一下。首先,打开Windows Mobile 6 Professional SDK自带的Cellular Emulator:
图 3
记下左下角的端口号。接着,打开模拟器的配置对话框,把这个端口号填到Peripherals选项卡的Serial port 0那里:
图 4
单击OK关闭对话框。然后,软重启模拟器:
图 5
重启完毕后你会看到模拟器已经连接到通信网络了:
图 6
好了,现在可以运行这个应用程序了:
图 7
使用Cellular Emulator向模拟器发送查询状态的短信息,不一会就收到自动回复了:
图 8
当你在这个应用程序的主窗体下面的TextBox里输入一个手机号码,并单击Ping按钮时,Cellular Emulator就会收到这个应用程序发送的查询状态的短信息:
图 9
你还想要什么?
且慢!搞了这么久,为什么收到"你在干嘛?"时还要手动回复?噢,看来我是得意忘形了,不好意思哟~~~
下一集,我们将会探讨如何让这个应用程序支持自定义的查询状态的短信息,例如"你在干嘛?",以及如何让这个应用程序支持可配置的状态信息,另外,我们还会尝试改善用户体验,让用户可以从电话簿里选择手机号码而不是手动输入一串数字。