WM有约II(一):你在干嘛?

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

 

你还想要什么?

且慢!搞了这么久,为什么收到"你在干嘛?"时还要手动回复?噢,看来我是得意忘形了,不好意思哟~~~

下一集,我们将会探讨如何让这个应用程序支持自定义的查询状态的短信息,例如"你在干嘛?",以及如何让这个应用程序支持可配置的状态信息,另外,我们还会尝试改善用户体验,让用户可以从电话簿里选择手机号码而不是手动输入一串数字。

posted @ 2009-01-14 23:14  Allen Lee  阅读(2960)  评论(18编辑  收藏  举报