手机跟踪程序“手机去哪儿了”

来源:互联网 发布:java lambda表达式句法 编辑:程序博客网 时间:2024/04/27 16:13

前言

    本程序原是作者自用的一款手机防盗应用,朋友看到后觉得不错也希望安装,本来没打算发布,但是看了最近令人心痛的MH370事件后,感觉市面上缺少一款维系亲人牵挂的软件。应微软严苛的隐私审核要求,我将程序进行了隐私改造(被退回了8次,不过相信在这么严格的审查下,用户用的也会放心些吧),最终诞生了这款《手机去哪儿了》这款软件。

    本篇意在于简单介绍软件功能,功能分析以及实现功能部分代码,以及提交应用通过严苛审核的一些心得。

    希望你爱的人与爱你的人一生平安。

功能简介

   《手机去哪儿了》是一款手机跟踪软件,在手机空闲时间内间隔地上传手机位置定位信息到指定邮箱。

    应用下载地址:点击下载

屏幕截图

         

(图1)                                                                          (图2)

(美工做得不好,见谅)

使用说明

     首先点击图1下方的设置按钮,进入图2,为方便新手,这里统一注释一下:

     1、SMTP服务器:The Simple Mail Transfer Protocol (SMTP) server,即简单邮件服务器,大家知道是邮件服务商提供用于发邮件的服务器就好了,一般在邮箱的首页都可以找得到;如,

                  网易163:smtp.163.com

                  新浪:smtp.sina.com

     2、登录用户:此处填写你注册的邮箱账号(有人竟然去填微博账号,真看不懂),只是用户名(一般是@前面部分),不是完整的邮箱地址

     3、登录密码:密码

     4、使用邮箱:这里填写完整的邮箱地址

     5、仅WIFI发送:软件通过两种网络发送,手机蜂巢网和WIFI,因为蜂巢网络会产生流量费用(做了优化流量很小,一张图片的流量够发五六千次了),如果不想花钱可以钩上;

     6、定位服务开关:微软说一定要有,不然不许发布,用途是开关本地定位服务;

     7、使用地图:邮件中将使用表示手机位置的地图链接,这里因为考虑到后台电量问题,考虑到让手机续航时间延长,没有使用耗电量多几倍的精准定位,而且网页地图和手机地图本身存在误差,所以有时相差较远,但这样对于救援力量来说应该足够了;

     8、邮件测试:正确填写以上信息后,可以测试邮件是否能够正常送达,这里强调一下考虑到SSL需要稳定的网络、且产生更多的无用流量的关系不支持SSL邮箱,如QQ邮箱

 

正常送达截图

        这些准备完成后,我们回到图一,点击运行按钮,这样就会在后台运行发信系统,空闲时将手机的当前位置上传自邮箱了。

开发相关

       希望多一些公益性的软件,在此小结下本软件有几个要点:

       1、如何自动发送邮件,微软发布的开发包本身只带有邮件软件外链接,如果使用自带的类库,除非我们能在将邮件内容传过去的同时捕获发送程序的句柄,不然无法操作自动发送,但是WP8是个封闭系统,进程间的操作除了几个允许的调用,简直就是禁止的,所以这条路行不通,我们只能做的是重写邮件协议;

       2、应用后台程序,这个无疑是限制得比较死的东西,特别是后台对互联网的访问这块,所以要上传数据要花些功夫;说到网络限制,这里着重说下网络回环,大家都知道,有些服务器上装备双网卡,当网络访问的时候,就会发生回环,一般的解决办法就是设置路由表。然而移动设备的环境复杂度要远大于有线的宽带,举例如下图:


       当移动设备从A点移动到B点,我们其实要完成从A的网络到B的网络转换,而中间的范围C就是A、B信号强度不相伯仲的地段,这样的情况也很容易造成回环,因此,持续连接的平滑网络转换是个难点。

       3、大多数软件是申明全局的Geoposition对象,StatusChange 和 PositionChange来获取位置,然而我们考虑到对于某些无法移动的受助者的情况,靠位置的改变来确认位置信息就显得不靠谱,而且不断的监控位置的改变会消耗大量的电力;

       4、考虑到软件的适用范围,设计支持4种语言,之前这方面没注意,到后边才补救造成多做了许多不必要的工作,这点后边会统一说一下。

功能实现

语言包规划

    首先,我们应该注意的是软件发布的范围,因为之前比较在意,很早就勾选了需要的语言,结果后边要匹配多个语言的字段,做了许多多余的活,请先将默认的语言改为英语,因为我们不可能完全翻译所以非既定语言,我们需要定制一个比较通用的语言。
点开项目→XXX属性→程序集信息按钮

将非特定语言设置为英语,也就是说,除了我们给定的有翻译的语言包外,所有其他语言的手机都采用英语显示。同时设置WMAppManifest.xml文件,让打包的默认语言也为英语。
完成后,我们资源管理器中找到Resources\AppResources.resx 文件将ResourceLanguage字段默认的zh-CN改为en-US,这样基本准备就完成了,我们可以开始下一步工作

简单邮件协议

    因为微软在WP平台上并没有公布邮件API,使得市面上的邮件软件几乎没有,好在哥以前是学C的,写一套邮件协议并不难,具体可以参看文档RFC821RFC1869,以下列出本篇使用的协议命令:
邮件协议命令介绍                

0 0
原创粉丝点击