PhoneFinder--寻找丢失的手机

    手机丢了怎么办?那就打电话给手机,如果运气好的话,捡到的好心人能够把手机还给你。如果手机是被偷的,那就没有办法了,即使手机开着,估计小偷也不会接电话。当然,我们继续下面讨论的前提就是:手机是掉了,而且被好心人捡到,但是他不知道怎么还;或者是手机处在silent状态,你打电话人家听不到。Googlepage上有这么一个类似的应用,也叫PhoneFinder,不过这个软件是要收钱的。在windows mobile 6 SDK自带的例子中,有一个PhoneFinder的应用,通过它,你可以在手机上设置一定的信息,如果你通过SMS,发送这个信息到手机上,手机就会弹出提示框,显示主人的信息,同时播放一段声音,以引起注意。

    开发这样的应用程序,我们首先需要了解一下几方面的内容:

1. State and Notifications Broker API

2. Pocket Outlook Object Model Application Development for Windows Mobile-based Devices

3. MessageInterceptor

    在应用程序的主界面上,我们可以让用户输入信息内容,并且设置应用是否允许。这样,在设备接收到含有预先设定的短信之后,就会做出相应的动作,如弹出提示框,播放声音等等。其中,开启短信拦截的关键代码段如下:

Code
 interceptor = new MessageInterceptor(InterceptionAction.NotifyAndDelete);
 
 interceptor.MessageCondition = new MessageCondition();
 
 interceptor.MessageCondition.CaseSensitive = true;
 
 interceptor.MessageCondition.ComparisonType = MessagePropertyComparisonType.Equal;
 
 interceptor.MessageCondition.ComparisonValue = pin.Text;
 
 interceptor.MessageCondition.Property = MessageProperty.Body;
 
 interceptor.EnableApplicationLauncher(ruleName);
 

播放声音使用PlaySound方法,通过PInvoke得到:

Code
PlaySound#region PlaySound
[System.Runtime.InteropServices.DllImport("coredll.dll")]
static extern int PlaySound(string pszSound, IntPtr hMod, int fdwSound);
const int SND_FILENAME = 0x20000;
const int SND_SYNC = 0x0;
const int SND_ASYNC = 0x1;
const int SND_LOOP = 0x8;
#endregion
 

主人信息通过SystemState获得:

Code
 string owner = SystemState.OwnerName;
 
 string email = SystemState.OwnerEmail;
 
 string phone = SystemState.OwnerPhoneNumber;
 

测试这个应用程序我们可以使用Device Emulator和Cellular Emulator。首先,打开设备模拟器和蜂窝模拟器,并将它们建立联系,具体步骤参考《Ring Tone Manager on Windows Mobile》。然后将程序部署到设备进行调试。调试时,应用程序的主界面如下图1所示:

图1:应用程序主界面

    在Pin的text中设置好相应的文字以后,点击“Enabled”,启动短信拦截,然后点击左下方的Exit退出界面。这时候,我们在蜂窝模拟器里面给设备模拟器发送字符串“1234”,如下图2所示:

图2:蜂窝模拟器中的SMS发送界面

    这时候,我们就可以在设备模拟器中看到相应的消息框,并听到声音了。如下图3所示:

图3:设备模拟器中看到的提示消息框

参考链接:

Google:PhoneFinder

MSDN:

1. State and Notifications Broker API

2. Pocket Outlook Object Model Application Development for Windows Mobile-based Devices

3. MessageInterceptor

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏james大数据架构

如何开发自己的搜索帝国之安装ik分词器

   Elasticsearch默认提供的分词器,会把每个汉字分开,而不是我们想要的根据关键词来分词,我是中国人 不能简单的分成一个个字,我们更希望 “中国人”...

2085
来自专栏JarvanMo的IT专栏

Fluwx:让在Flutter中使用微信SDK成为可能

之前有了解的小伙伴可能已经看过Fluwx的一篇文章,不过那个时候Fluwx还是不太成熟。现在Fluwx的主体功能已经过成了。如果你正在或想开发一个Flutter...

721
来自专栏FreeBuf

IP.Board CMS恶意重定向分析

IP.Board CMS是一款著名的CMS系统,它允许用户很容易地创建和管理在线社区。而最近Sucuri的研究员最近发现了一个针对IP.Board的重定向。经过...

1817
来自专栏Java技术分享

基于 CentOS 搭建微信小程序服务

小程序无疑是今年互联网的重大热点。本实验带您从零开始,基于 NodeJS 搭建起一个可以支撑小程序运行的服务,包括 HTTPS 部署、会话服务、WebSoc...

9079
来自专栏数据派THU

78行Python代码帮你复现微信撤回消息!

[ 导读 ]Python曾经对我说:"时日不多,赶紧用Python"。于是看到了一个基于python的微信开源库:itchat,玩了一天,做了一个程序,把私聊撤...

1053
来自专栏iOSDevLog

应用程序内购买教程:入门

更新说明:Pietro Rea为Xcode 10,Swift 4.2和iOS 11/12更新了本教程。Ray Wenderlich写了原文。

712
来自专栏c#开发者

LightSwitch Sliverlight应用系统开发入门

LightSwitch 开发入门 什么是LightSwitch 简单的说LightSwitch就是一个基于模板的自动化开发Silverlight应用程序的工...

2818
来自专栏JarvanMo的IT专栏

Fluwx:让在Flutter中使用微信SDK成为可能

之前有了解的小伙伴可能已经看过Fluwx的一篇文章,不过那个时候Fluwx还是不太成熟。现在Fluwx的主体功能已经过成了。如果你正在或想开发一个Flutter...

692
来自专栏喃小柯站的原创

彻底地给自己的Android手机来一次清理

手机清理一直是一个烦心事。用清理软件清理虽方便,但每次清理完并没有腾出多少空间。而且第三方清理软件经常会时不时来个弹窗,来个推送。久而久之也就让人为之烦躁。如果...

772
来自专栏酷玩时刻

微信公众号开发之扫码支付

上一篇文章介绍了微信提供的那些支付方式以及公众号支付http://www.jianshu.com/p/cb2456a2d7a7

533

扫描关注云+社区