基于Android的防走失功能实现研究

2016-12-03 03:50陈晓男
关键词:监听应用程序短信

沈 漪,陈晓男

(无锡科技职业学院, 江苏 无锡 214028)

[文章编号]1671-802X(2016)04-0004-03

基于Android的防走失功能实现研究

沈 漪,陈晓男

(无锡科技职业学院, 江苏 无锡 214028)

针对无认路能力的老人小孩在走失后不能准确描述自己的方位,提出了基于短信的跟踪定位功能的实现方案。该程序基于Android平台,利用移动短信的便利、Google地图的定位功能,实现了只需安装客户端,便能实时了解无识路能力的老人、小孩及其他弱势群体的方位。经过一系列的测试,能在大部分手机实现。

Android平台;短信;定位

随着智能手机的普及,各通信公司网速的提升和手机流量资费的下降,导航和定位功能的使用越来越方便,但一般仅局限于对手机使用者本人的定位和导航。对他人的定位功能往往要在被定位人和定位人的手机上分别安装客户端应用程序,还需要服务端应用程序的支持。本文基于Android平台,借助Android平台上集成的定位功能,利用短信,实现一个简易的位置跟踪应用程序。只要把该应用程序安装在被定位人的Android手机上,向该手机发送包含特殊文本的短信,该手机将自动发回一条包含了其所在位置的短信。该应用程序可以用来跟踪了解孩子或者独自生活的老人的位置。

一、总体设计方案

该应用仅需设计被定位人手机端程序,该程序需要包含两个模块,首先是短信监听模块,其次是位置监听模块。如图1所示。

图1 程序总体结构图

该应用程序的思路如下:假设被定位人手机具有定位功能。查看定位人手机发送含有特殊标识的短信给被定位人手机,该手机接收到短信后,进行自我定位,并将自己位置的经纬度值以短信方式发回查看人手机并结束自我定位,查看人接收后,可在百度地图输入经纬度值,了解被定位人的位置信息。

该定位算法的伪代码如下:假设查看人的手机号码为senderTel,发送的内容为msg,短信特殊文本为”location?“,定位信息为locString。

(1)send(msg)//查看人发送短信

(2)check(msg)//被定位人监听短信并判断监听短信是否含有特殊标记

(3)if(msg startswith(“location?”))//如果短信以“location?”开头

request locationListener //启动位置监听

(4)send(locString)//将定位信息发送到查看人手机

(5)remove locationListener//结束位置监听

二、关键技术分析

(一)短信消息传递

本应用中两处涉及到消息传递。首先是对手机收到的消息进行截取并分析是否包含指定文本,若包含则启动定位。在定位成功后,还要通过消息传递把位置信息发回查看者手机。

1.接收消息并分析

Android平台支持在应用程序中发送或接收短信消息。在本应用程序中需要接收短信并提取分析,这要借助于Android平台的广播监听功能组件BroadcastReceiver。BroadcastReceiver组件使应用程序接收其他应用程序使用sendBroadcast()方法发送的意图(Intent)。当接收到一个意图对象时,调用onReceive()方法(BroadcastReceiver接口中的方法)。也就是onReceive()方法在收到一个传入的短信消息时被触发。短信消息通过一个Bundle对象包含在Intent对象中(onReceive()方法的第二个参数)。每收到一条短信消息,onReceive()方法会被调用一次。因而本应用程序中对短信消息的分析代码应在BroadcastReceiver的onReceive()方法中实现。如下所示:

此外,需要在配置文件里设置接收信息许可,如下所示:

为了使程序能监听手机系统接收短信的系统广播事件,必须进行注册,注册分静态注册与动态注册,本应用使用静态注册,如下所示:

做了这样的注册后,即使应用在未开启状态,程序也能对接收短信做出响应。

2.发送消息

Android平台除了可以接收短信,还可以用编程的方式发送短信消息,也就是应用程序可以自动发送短信消息给收信人,而无须手机用户干预。这样的功能是通过SmsManager类实现的。先调用其静态方法getDefault()获得一个SmsManager对象;然后,使用SendTextMessage()方法发送短信消息,代码如下所示:

此外,还需在配置文件中设置发送信息许可,如下所示。

(二)定位技术

本应用中,在收到含有指定文本的信息时,将启动定位,其实质就是注册位置监听。然后,在位置监听器中设置发回位置信息的代码。最后,停止定位。涉及到定位功能,需要在配置文件中设置定位许可,代码如下:

1.定位功能启动

Android系统提供了LocationListener监听器接口,可以监听设备位置信息的变化。通过LocationManager的requestUpdates()方法注册监听器,这样当设备位置发生变化时监听器就会被触发,进而调用执行接口中的onLocationChanged()方法。考虑到被定位人不一定处于空旷位置,本应用选择使用网络位置提供商来获取位置信息,所以需要设备连接到网络。相比使用GPS获取位置信息,精度上会有所降低,但适用度更高。

启动定位代码如下所示:

2.获取当前位置信息

在 LocationListener 监 听 器 接 口 的onLocationChanged()方法的参数中包含了存放位置信息的变量loc。只要从该变量中通过get方法获取相应的经纬度和地址信息。

3.停止定位

在发送位置短信后,将停止对被定位人的定位,停止定位代码如下:locmag.removeUpdates(locListener);

三、测试分析及总结

将该应用安装在手机1上后,先开启WIFI或移动网络,用手机2发送包含“location?”文本的信息,手机1会显示提示信息“将发出短信”,选择允许并不再通知。手机2将接收到手机1的位置信息。由于使用的是网络定位,位置有一定的误差。如果希望减少误差并且被定位人位于空旷地区,可以选择用GPS定位,但仍然会有一定的误差。

经过在小米、华为、联想、OPPO等手机上的一系列测试,该应用能在大部分手机上成功使用。

[1]Wei-Meng Lee..Android 4编程入门经典—开发智能手机与平板电脑应用[M].清华大学出版社,2012.

[2]Rick Oogers,JohnLombardo,.等.Android应用开发[M].人民邮电出版社,2010.

[3]代 敏,张 晶.基于Android平台的嵌入式软件“混合”定位控制策略研究[J].科学技术与工程,2012,(5).

(责任编辑:魏树峰)

Research on Anti-lost Function Based on Android

SHEN Yi,CHEN Xiao-nan
(Wuxi Vocational College of Science and Technology,Wuxi 214028,China)

For the missing elderly and children who can not accurately describe their position,a tracking and postioning program based on short message service (SMS)is put forward.Based on the Android platform,the program with installation of client makes good use of the convenience of SMS and the positioning function of Google maps to accurately locate the elderly,children and other vulnerable groups. A series of tests show that the function can be realized on most mobile phones.

Android platform;SMS;location

TP399

A

2016-06-20

沈 漪(1982-),女,江苏无锡人,讲师,硕士,研究方向:软件技术开发.E-mail:symnb6742@163.com.

无锡市科协软科学课题(KX15-13-19)

猜你喜欢
监听应用程序短信
英国风真无线监听耳机新贵 Cambridge Audio(剑桥)Melomania Touch
千元监听风格Hi-Fi箱新选择 Summer audio A-401
删除Win10中自带的应用程序
道歉短信
谷歌禁止加密货币应用程序
代发短信
网络监听的防范措施
应召反潜时无人机监听航路的规划
三星电子将开设应用程序下载商店
“八一”节日短信之一