本篇文章主要讲述短信拦截的一些方法,虽然该方法不是最理想的方法,但仍然能够达到相同的功效。
作为高级篇的第一篇文章,希望文中的一些API的使用方法,能够给更多人予以帮助。
在.net 2.0中,MS就提供了
Microsoft.WindowsMobile.PocketOutlook.MessageInterception命名空间,通过使用该命名空间,可以截获短信和邮件的到达消息。
该命名空间中的一些类及属性:
1.
MessageInterceptor:监控对象类,一旦添加监控事件后,就会对所有消息进行监控。
2.
MessageCondition:监控的过滤筛选条件类,通过设置需要过滤某个字段。
3.
MessageInterceptorEventHandler:监控事件,一旦截获某消息,就立即执行该方法。
4.
InterceptionAction(枚举):
Notify(提示,但此时系统仍会第一时间处理,自定义处理虽然有效,但肯定不是大家想要的。)
NotifyAndDelete(系统不会做任何处理,直接交给用户自己处理,同时达到的消息,如果用户不处理,则会删除。)
5.
MessageProperty(枚举):按照某个属性进行对比
6.
MessagePropertyComparisonType(枚举):对比方法
运行程序效果如下:

在Menu菜单下,点击Message Intercepter事件,开始监听。在此,我设置了,当发短消息的用户为Test Man时,将短消息过滤,不会在短消息的收件箱中出现,截获的内容这会在界面上显示。
测试:运行Cellular Emulator程序,输入电话号码及短信内容,发送到模拟器上。

模拟器效果如下:

可以看到消息已经被截获了,且消息内容一致。

如果发送号码为123456788,则不是添加的联系人(Test Man)。则不会截获。

代码如下: