一种基于Android平台的远程监护报警系统的制作方法

xiaoxiao2021-2-24  191

一种基于Android平台的远程监护报警系统的制作方法
【技术领域】
[0001]本发明涉及一种监护系统,具体涉及一种基于Android平台的远程监护报警系统。
【背景技术】
[0002]近几年来,随着社会经济日新月异的发展,人们生活的步伐加快,道路上车流量越来越大,这直接影响着每个家庭中儿童、老人的外出安全。加之家庭中家长生活负担重,工作压力大,并没有太多时间去关注着家中孩子、老人的外出动态。这些因素间接或直接导致了我们经常能从媒体上看到儿童走失或者上学途中发生事故等新闻报道。如何去降低这类事件的发生概率,是值得思考的问题。如果家长能随时了解孩子、老人的去向,在其进入较危险区域时,提前通知他们远离;或如果孩子进出学校,家长能收到短信通知,这些措施能降低这类事故的发生。

【发明内容】

[0003]本发明的目的是提供一种基于Android平台的远程监护报警系统,一方面方便了家长对家中成员的进行监护,减轻了家长的生活负担;另一方面,能从一定程度上降低儿童、老人外出发生事故的概率,一举两得。
[0004]为实现上述目的本发明采用以下技术方案:一种基于Android平台的远程监护报警系统,其特征在于:包括被监护端、监护端及数据库;所述被监护端具有以下功能:绑定用户信息;实时更新预警范围、报警;自我定位、一键呼救;查看绑定信息;监护端具有以下功能:用户注册登录;查询被监护端位置信息;设置预警区域;绑定、修改被监护端账号;所述数据库具有以下功能:向被监护端及监护端提供数据操作接口;需新建在两个表单,一个存储所有被监护端信息,另一个存储所有监护端设备信息。
[0005]在本发明一实施例中,所述数据库的构建包括以下步骤:步骤S1:将智云CloudBaaS的war包提交至新浪SAE后,开启KVDB服务;步骤S2:服务管理菜单项中选择Mysql并对Mysql进行初始化操作,创建统计数据服务的数据表,获取AccessKey、SecretKey,作为后台数据库查看的用户名和密码,后台数据库地址为应用的二级域名;步骤S3:在Eclipse的应用工程中添加云服务及数据库调用的接口,调用的方法包括:(1 )使用CloudClient.1nit(context,appname,accesskey,secretkey)对CloundBaaS进行初始化操作;(2)数据库的两个接口,一个是CloudDB.query(mSQL),对数据库进行查询的操作,返回结果为!^81:〈]\&^)〈31:1';[]^,31:1';[1^>>类型的的1丨81:列表;另一个为CloudDB.execute (mSQL),该语句对数据库进行insert、update、delete操作;(3)文件类型的存储的接口:上传CloudFile.upload(url_local)、下载CloudFile.fetch(url_ser)、删除CloudFile.delete(url_ser);监护端 db_myuser 数据表中包含 account、passcode、bindname、te 1、binddevice字段,其中account、passcode为监护者的账号密码,tel为监护者手机号码供接收预警短信使用,bindname、binddevice为绑定时上传的绑定备注和绑定的被监护对象的设备号。
[0006]在本发明一实施例中,所述被监护端的功能实现包括以下步骤:征求用户同意后,直接获取被监护端的设备号,更新到被监护端的数据库中,同时开启Locat1nService月艮务,与后台服务器交换数据信息;Locat1nService服务每5秒向服务器数据库发送本机位置信息,发送的位置信息包含位置更新时间uploadtime及位置的经玮度坐标locat1n,每五分钟向服务器数据库发送包含历史位置信息的logcat.db文件,内嵌的位置信息格式与发送至数据库的信息格式一致;在发送位置信息的同时,与服务器进行位置数据的交互。应用完成交互后计算出当前位置作标和设置的预警中心坐标的距离,直接同设置的预警半径radius进行大小的判断,判断是否发送短信,设定发送短信的条件为被监护对象进行跨界动作时便向监护端发送。
[0007]在本发明一实施例中,所述监护端的功能实现及业务处理流程包括以下步骤:步骤一:创建储存用户信息数据类,该数据类包括需要用到的所有数据类型,据应用可通过存、取借口实现对数据的调用;步骤二:写BaseActivity基类,该基类声明为抽象的基类,基类里注册了整个应用会使用到的广播,哪个Activity使用广播只需继承这个基类;该基类中包括一抽象方法为sendMsg(String msg),通过该方法实现对其他activity的UI进行操作处理,msg参数为处理数据后的结果;步骤三:仓ij建WelcomeAcivity,其进行数据库的初始化操作,用BaseActivity中的Connect1nChangeReceiver广播监听网络变化,WelcomeActivity延时五秒后自动跳转至LoginActivity进行用户登陆;步骤四:登陆成功后进入HomeActivity,HomeActivity为被监护对象定位、预警、绑定机设置各个功能的入口 ;HomeActivity直接所述数据库请求该账号绑定的被监护端设备信息;步骤五:创建绑定功能BindActivity,该活动主要显示绑定的用户信息,并提供修改绑定信息的接口 ;步骤六:创建定位Locat1nActivity,该Ativity分为两个模式,一个是被监护端定位模式,另一个为查看历史轨迹模式;在被监护端定位模式中,获取远程数据被监护端的位置信息,实现对被监护对象的实时更新;在查看历史轨迹的模式中,可查看被监护端的历史轨迹,并提供修改设置监护信息的接口,如监护范围,监护中心点等。
[0008]在本发明一实施例中,所使用的地图为高德地图,高德地图的使用环境配置包括以下步骤:首先登陆高德LBS开放平台:http: //lbs.amap.com/,注册成为开发者;登陆后,进入控制台界面获取key ;在安全码一栏中填入SHA1值,其获取方式为在eel ipse中选择WINDOW菜单,选择菜单中Pref erances选项,点击andor id的Bui Id项即可查看获取key ;之后,同样再次打开应用工程AndroidManifest.xml配置文件,在applicat1n中添加属性:
〈meta-dataandroid:name=〃com.amap.ap1.v2.apikey〃
android: value=〃6elac06c9482f57bf61592e2e79alffa〃/>;其中 value 的值为所申请的 key ο
[0009]与现有技术相比,本发明基于Android平台,使用新浪研发中心提供的SinaAppEngine云计算平台进行互联网服务器的搭建,并选择了阿里旗下高德地图提供的地图AndroidSDK作为地图开发的调用接口,具有可移植性强,可以在多种终端设备使用,不依赖外部硬件,不会发生因为硬件某芯片更换而导致软件部分需重构的问题,功能可拓展性尚等优点。
【附图说明】
[0010]图1为被监护端的主要功能示意图。
[0011 ]图2为监护端的主要功能示意图。
[0012]图3为监护端查询被监护端位置功能示意图。
[0013]图4为监护端设置预警范围示意图。
【具体实施方式】
[0014]下面结合附图和具体实施例对本发明做进一步说明。
[0015]本发明提供一种基于Android平台的远程监护报警系统,该系统包括被监护端、监护端及数据库;所述被监护端具有以下功能:绑定用户信息;实时更新预警范围、报警;自我定位、一键呼救;查看绑定信息;监护端具有以下功能:用户注册登录;查询被监护端位置信息;设置预警区域;绑定、修改被监护端账号;所述数据库具有以下功能:向被监护端及监护端提供数据操作接口 ;需新建在两个表单,一个存储所有被监护端信息,另一个存储所有监护端设备信息。被监护端及监护端的主要功能示意图参见图1、2。
[0016]新浪SAE平台是目前中国第一个云计算平台。它提供了Mysql数据库服务,所有移动端应用可以通过调用SaeMysql类,对数据库进行连接操作,另外它还支持通过平台上phpmyadmin页面对数据库、数据表进行在线的创建、删除动作。除了单纯的数据库外,它还提供了 KVDB(分布式KEY-VALUE键值对存储)、Storage (分布式文件存储服务)等服务。智云CloudBaaS是基于新浪Sae平台开发的一个移动应用开发后端服务方案。
[0017]所述数据库的构建包括以下步骤:步骤S1:将智云CloudBaaS的war包提交至新浪SAE后,在服务管理菜单项中找到KVDB,开启其服务;步骤S2:服务管理菜单项中选择Mysql并对Mysql初始化操作,并导入统计用的sql语句,创建统计数据服务的数据表,获取AccessKey、SecretKey,作为后台数据库查看的用户名和密码,后台数据库地址为应用的二级域名;步骤S3:在Eclipse的应用工程中将CloundService.ja r、gson, jar、httpmime.jar添加至被监护、监护端工程lib目录下,实现对CloundBaaS中的方法进行调用,调用的方法包括:(1)使用CloudClient.1nit(context,appname,accesskey, secretkey)对CloundBaaS进行初始化操,context为appname为在新浪SAE平台创建应用时所填写的应用名称,accesskey、secretkey为创建后提供的AccessKey、SecretKey,调用后其生成一个httpclient对象,连接网络与服务器交换token信息;如未进行初始化,后续接口的调用将出现httpclient空指针异常导致应用崩溃,使用时请确保网络连接。
[0018](2)使用对象存储时,实例化一个User对象,对该User对设值User.set(newaddress( “test” , 9999))后使用CloudOb ject.save( 〃num_l〃,User)存储对象,其返回一个Boolean对象来表示存储操作是否完成;(3)数据库的使用主要用到两个接口,一个是〇1011(1013.911617(1113(^)对数据库进行查询的操作,返回结果为1^81:〈]\&1。〈31:1';[1^,31:1';[1^>>类型的的list列表,其中mSQL语句为要操作数据库的命令如:selectbindtel ,alarm lo cat 1n , rad iusfrommy_ch i ld_infowher ede vice id= ’123456’ ;〃;另一个是CloudDB.execute (mSQL),该语句对数据库进行 insert、update、delete操作,返回一个int类型的数值,表明数据库中受该语句影响的行数;(4)文件类型的存储的接口有:上传CloudFile.upload(urll)、下载CloudFile.fetch(url2)、删除CloudFile.delete(url2),url 1为本地待上传文件的位置,url2位服务器端文件位置;步骤S4:在数据库中将被监护端上传的数据写入db_child_info数据表,将监护端上传的数据库写入db_myuser中;被监护iMdb_child_infofj(i§^:/Sl^'deviceidNuploadtimeNlocat1nN locat 1n_path、&1&1'111100&1:;[011、作(1;[118、13;[11(^61字段,其中(16¥;^61(1为被监护的手机的设备号码,每个手机独有,该字段不可为空,uploadtime为上传时间,locat1n为被监护端手机当前位置,locat 1n_path为被监护端历史轨迹文件locat1n.txt存储的路径,三者为service上传位置信息时上传的数据。alarmlocat1n为监护端设定的预警中心位置坐标,radius为预警半径,bindtel为监护端绑定被监护端时提供的预警短信接收号码;
监护端 db_myuser 数据表中包含 account、passcode、bindname、tel、binddevice 字段,其中account、passcode为监护者的账号密码,tel为监护者手机号码供接收预警短信使用,此三个数据不可为空,在注册时提交,bindname、binddevice为绑定时上传的绑定备注和绑定的被监护对象的设备号。
[0019]总的来说,监护端通过被监护端独有的设备号对被监护端进行绑定,而后获得查看被监护端数据库中位置等信息的权限。至此,远程监护报警系统的外网服务器已完成搭建。
[0020]所述被监护端的功能实现包括以下步骤:征求用户同意后,直接获取被监护端的设备号,更新到被监护端的数据库中,同时开启Service服务,与后台服务器交换数据信息;Service服务每5秒向服务器数据库发送本机位置信息,发送的位置信息包含位置更新时间Uloadtime及位置的经玮度坐标locat1n,每五分钟向服务器数据库发送包含历史位置信息的locat1n.db文档,内嵌的位置信息格式与发送至数据库的信息格式一致;在发送位置信息的同时,判断该被监护端的所对应设备id在db_child_info中alarmlocat和radius的值是否为空,不为空则获取数据存入应用全局变量中,再使用
Floatdistance=AMapUtils.calculateLineDistance(startLatlng,endLatLng),计算出当前位置作标和设置的预警中心坐标的距离,其方法返回的数值单位为m,直接同设置的预警半径radius进行大小的判断,在对比前,应用设置了标志位,通过标志位判断是否发送短信,设定发送短信的条件为被监护对象进行跨界动作时便向监护端发送。
[0021]由于开发过程中各个Activity进行的功能不同,有的Activity修改了一些如绑定状态、网络监听状态等参数,这就需要进行Activity间的通信,由于Activity众多,所以通信起来十分的麻烦,为了解决这个问题,在本应用中应用了全局变量AppData类,它的生命周期和整个应用一致,并不会像普通的数据类那样一旦哪个Activity销毁后便随着Activity的销毁而消失。因此使用AppData类保存一些状态变量如是否从服务器上读取绑定信息完成绑定信息的初始化操作的、及全局数据账号、密码等。
i0022] AppData的实现:要实现AppData首先应写一个数据类,里面写各种需要用到的数据类型,然后对这些数据类型封装getter和setter,再将这个数据类继承Applicat1n 类,继承之后,打开配置文件 AndroidManifest.xml ,? applicat1n 属性中追加:
android:name=“com.lxylbs.data.AppData”
其中com.lxylbs.data.AppData为刚才所写的数据类的位置,完成了全局变量类的编写,接下来就是使用了,使用时实例化一个AppData对象,如Appdata mAppData,再对该对象初始化,mAppData=( Appdata) con text.getAppl i cat 1nCon text (),接着调用mAppData的getter和setter进行对数据的操作。应用中很多地方都会用到网络去访问远程的数据,由于网络的不确定性,一些数据到达的时间是不可预测的,所以远程数据的获取与数据的使用不能同步,必须用异步线程去访问。现有技术中常用Handle机制去处理这些事件,但是Handle的使用必须传入一个Handle对象,使用起来并不是太方便,于是本发明使用广播机制解决这个问题。对远程操作数据库的结果以广播形式发出,哪个Activity需要接受这个广播,只需在Activity中添加广播过滤器,注册这个广播即可,但是哪个Activity用哪个Activyty注册的情况下,每一次用都必须实例化一个BroadcastReceiver对象,并对它的接收做接收方法处理,代码维护起来又十分地不方便。因此,本发明中写了一个BaseActivity基类。
[0023]因此所述监护端的功能实现包括以下步骤:步骤一:写一个数据类,该数据类包括需要用到的数据类型,然后对这些数据类型封装getter和setter,再将该数据类继承八卩卩1;[031:;[011类,继承之后,打开配置文件411(11'0丨(1]\&111丨1^81:.11111,在3卩卩1;[031:;[011属性中追加:android:name= “com.lxylbs.data.AppData” ;其中com.lxylbs.data.AppData为所述数据类的位置;使用时实例化一个AppData对象,AppdatamAppData,再对该对象初始化,mAppData=(Appdata)context.getApplicat1nContext(),接着调用mAppData的getter和setter进行对数据的操作;步骤二:写一个BaseActivity基类,该基类声明为抽象的基类,基类里注册了整个应用会使用到的广播,类中只写了一个onReceive方法对接收到的广播的Act 1n、stringExtra进行判断,并结合上述的全局变量类对数据进行存储操作,哪个Activity使用广播只需继承这个基类;该基类中包括一抽象方法为sendMsg(Stringmsg),改方法实现对其他activity的UI进行操作处理,msg参数为处理数据后的结果,在sendMsg中对UI进行操作,对全局变量类AppData进行数据的读写实现对Activity的调用的;步骤三:开启WelcomeAcivity,其进行数据库的初始化操作,用BaseActivity中的Connect1nChangeReceiver广播监听网络变化,无网络时不对数据库进行操作并弹出Toast消息通知用户,网络不可用,WelcomeActivity使用Handle机制延时五秒后自动跳转至LoginActivity进行用户登陆;步骤四:登陆成功后进入HomeActivity,HomeActivity为被监护对象定位、预 警、绑定机设置各个功能的入口 ;HomeActivity直接所述数据库请求该账号绑定的被监护端设备信息,存入全局变量Appdata中,并将全局变量类中的IsBind状态设置成TRUE;步骤五:进入绑定功能BindActivity,进入该Activity后应用首先去获取全局变量中该账号绑定的被监护对象的信息,信息不存在,则在页面上显示,无绑定设备,若有绑定设备信息,则将设备信息显示出来,需修改绑定号码时填写昵称、绑定对象的设备号提交,提交后输入的设备号在db_child_info表中查询是否存在该设备,若该设备存在,则将远程数据库db_myuser表中的该账号对用的bindneme,binddevice写入绑定时输用户填入的数据,并更新UI显示当前新绑定的设备对象,同时将全局变量的IsBind设置成TRU;步骤六:进入定位Locat1nActivity,该Ativity分为两个模式,一个是被监护端定位模式,另一个为查看历史轨迹模式;在被监护端定位模式中,使用Handler.postDelayed( this,10000),在runnable中再次调动该方法同时去获取远程数据被监护端的位置信息,实现对被监护对象的实时更新,获得位置后,使用Amap提供的Marker方法在地图上画出坐标,画坐标的方法封装成一个函数在函数调用时将之前画的marker标记Remove掉,这样就不会造成一个地图界面出现好多个marker的现象出现;在查看历史轨迹的模式中,监护端去获取被监护端的locat 1n_path,再使用得到的url去访问得到文件,读取分析文件获取带有历史坐标的Array list,其中Array list中存放的类型为Latlng,ArrayLi st〈LatLng>,准备好历史坐标后,在地图中使用AMap.addPolyline(PolylineOpt1ns)进行绘制折线,polyl1neOpt1ns对象可设置线条宽度、颜色、画的Latlng坐标,直接使用?01}4;[116(^1:;[0118.3(1(1311(41'瓜71丨81:〈131:11^>)放入坐标集合;步骤七:进入预警功能,先进行初始化界面操作,MapView做地图界面的显示,监护端先向服务器请求绑定设备数据表中的的alarmlocat 1n和radius参数,如果参数不为空,则以alarmlocat 1n为中心坐标,radius为半径画出被绑定设备的预警范围,如果为空则不处理;将地图的中心点设置为当前的监护者的位置:使用Locat 1nManagerProxy,调用该对象的
requestLocat1nData(Locat1nProviderProxy.AMapNetwork,60*1000,15,this),其中第一个参数表示定位的类型,这里是混合定位,当GPS数据优先返回时使用GPS数据,当LBS数据优先返回时使用LBS数据,同时返回时则使用GPS数据,第二个参数为每次获取位置的间隔,第三个参数为移动15米,获取位置信息;调用后,在必须重写的onLocat1nChanged写入后续操作,这里直接修改地图中心点并画出marker ;预警功能中心点的获取:对Amap设置单击事件监听:aMap.setOnMapClickListener();点击后我们将点击获取的坐标致Latlng直接在地图界面上做显示,同时在Ed it ext中输入半径,提交时,将所设定的值update到db_child_inf ο中对应的绑定设备。图3为监护端查询被监护端位置功能示意图参见图3。监护端设置预警范围示意图参见图4。
[0024]所使用的地图为高德地图,高德地图的应用包括以下步骤:首先登陆高德LBS开放平台:http://lbs.amap.com/,注册成为开发者;登陆后,进入控制台界面获取key,在弹出界面中输入移动应用的名称,选择使用的高德地图的服务的Andor idSDK,在包名选项中填入应用的包名,所述包名必须与移动应用工程中AndroidManifest.xml配置文件里的包名一致;在安全码一栏中填入SHA1值,其获取方式为在eclipse中选择WINDOW菜单,选择菜单中Preferances选项,点击andor id的Bui Id项即可查看获取key;之后,同样再次打开应用工程AndroidManifest.xml配置文件,在appli cat 1n中添加属性:
〈meta-dataandroid:name=〃com.amap.ap1.v2.apikey〃
android: value=〃6elac06c9482f57bf61592e2e79alffa〃/>;其中 value 的值为所申请的 key ο
[0025]以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
【主权项】
1.一种基于Android平台的远程监护报警系统,其特征在于:包括被监护端、监护端及数据库; 所述被监护端具有以下功能:绑定用户信息;实时更新预警范围、报警;自我定位、一键呼救;及查看绑定信息; 所述监护端具有以下功能:用户注册登录;查询被监护端位置信息;设置预警区域;及绑定、修改被监护端账号; 所述数据库具有以下功能:向被监护端及监护端提供数据操作接口;需新建两个表单,一个存储所有被监护端设备、位置及功能信息,另一个存储所有监护端设备信息。2.根据权利要求1所述的基于Android平台的远程监护报警系统,其特征在于:所述数据库的构建包括以下步骤: 步骤S1:将智云CloudBaaS的war包提交至新浪SAE后,在服务管理菜单项中找到KVDB,开启其服务; 步骤S2:服务管理菜单项中选择Mysql并对Mysql初始化操作,并导入统计用的sql语句,创建统计数据服务的数据表,获取AccessKey、SecretKey,作为后台数据库查看的用户名和密码,后台数据库地址为应用的二级域名; 步骤S3:在应用工程中将CloundService.jar、gson,jar、httpmime.jar添加至被监护、监护端工程lib目录下,实现对CloundBaaS中的方法进行调用,调用的方法包括: (1)使用CloudClient.1nit(context ,appname ,accesskey, secretkey)对CloundBaaS进行初始化操,context为默认应用程序环境信息,S卩上下文,appname为在新浪SAE平台创建应用时所填写的应用名称,accesskey、secretkey为创建后提供的AccessKey、SecretKey,调用后其生成一个httpclient对象,连接网络与服务器交换token信息; (2)使用对象存储时,实例化一个User对象,对该User对设值User.set(newaddress(“test” , 9999))后使用CloudOb ject.save (〃num_l 〃,User)存储对象,其返回一个 Boo lean对象来表示存储操作是否完成; (3)数据库的使用主要用到两个接口,一个是Cl0udDB.query(mSQL)对数据库进行查询的操作,返回结果为!^81:〈]\&1口〈51:1';[1^,51:1';[1^>>类型的的1181:列表,其中1115(^语句为要操作数据库的命令如: selectbindtel,alarmlocat1n ,radiusfrommy_child_infowheredeviceid=’123456 ’ ; 〃 ;另一个是CloudDB.execute (mSQL),该语句对数据库进行insert、update、delete操作,返回一个int类型的数值,表明数据库中受该语句影响的行数; (4)文件类型的存储的接口有:上传CloudFile.upload(urll)、下载CloudFile.fetch(url2)、删除CloudFile.delete(url2),urll为本地待上传文件的位置,url2位服务器端文件位置; 步骤S4:在数据库中将被监护端上传的数据写入db_child_info数据表,将监护端上传的数据库写入db_myuser中; 被监护端(113_。11;[1(1_;[11;1^0数据表包含(16¥;[。6丨(1、卯10&(11:;[1116、locat1n、locat1n_卩已1:11、3131'11110031:;[011、瓜(1;[118、13;[11(^61字段,其中(16¥;^61(1为被监护的手机的设备号码,每个手机独有,该字段不可为空,uploadtime为上传时间,locat1n为被监护端手机当前位置,locat1n_path为被监护端历史轨迹文件locat1n, txt存储的路径,三者为service上传位置信息时上传的数据; 3131'11110031:;[011为监护端设定的预警中心位置坐标,作(1;[118为预警半径,13;[11(^61为监护端绑定被监护端时提供的预警短信接收号码; 监护端 db_myuser 数据表中包含 account、passcode、bindname、tel、binddevice 字段 ,其中account、passcode为监护者的账号密码,tel为监护者手机号码供接收预警短信使用,此三个数据不可为空,在注册时提交,bindname、binddevice为绑定时上传的绑定备注和绑定的被监护对象的设备号。3.根据权利要求2所述的基于Android平台的远程监护报警系统,其特征在于:所述监护端的功能实现包括以下步骤: 步骤一:创建一个数据类,该数据类包括需要用到的数据类型,然后对这些数据类型封装getter和setter,再将该数据类继承Applicat1n类,继承之后,打开配置文件AndroidManifest.xml,在 applicat1n 属性中追加:android:name =“com.lxylbs.data.AppData” ;其中com.lxylbs.data.AppData为所述数据类的位置;使用时实例化一个AppData对象,AppdatamAppData,再对该对象初始化,mAppData=(Appdata)context.getApplicat1nContext(),接着调用mAppData的getter和setter进行对数据的操作; 步骤二:编写BaseActivity基类,该基类声明为抽象的基类,基类里注册了整个应用会使用到的广播,类中只写了一个onReceive方法对接收到的广播的Act1n、stringExtra进行判断,并结合上述的全局变量类对数据进行存储操作,哪个Activity使用广播只需继承这个基类;该基类中包括一抽象方法为sendMsg(Stringmsg),改方法实现对其他activity的UI进行操作处理,msg参数为处理数据后的结果,在sendMsg中对UI进行操作,对全局变量类AppData进行数据的读写实现对Ac t i v i ty的调用的; 步骤三:开启WelcomeAcivity,其进行数据库的初始化操作,用BaseActivity中的Connect1nChangeReceiver广播监听网络变化,无网络时不对数据库进行操作并弹出Toast消息通知用户,网络不可用,WelcomeActivity使用Handle机制延时五秒后自动跳转至LoginActivity进行用户登陆; 步骤四:登陆成功后进入HomeActivity,HomeActivity为被监护对象定位、预警、绑定机设置各个功能的入口;HomeActivity直接所述数据库请求该账号绑定的被监护端设备信息,存入全局变量Appdata中,并将全局变量类中的IsBind状态设置成TRUE; 步骤五:进入绑定功能BindActivity,进入该Activity后应用首先去获取全局变量中该账号绑定的被监护对象的信息,信息不存在,则在页面上显示,无绑定设备,若有绑定设备信息,则将设备信息显示出来,需修改绑定号码时填写昵称、绑定对象的设备号提交,提交后输入的设备号在db_child_info表中查询是否存在该设备,若该设备存在,则将远程数据库db_myuser表中的该账号对用的bindneme,binddevice写入绑定时输用户填入的数据,并更新UI显示当前新绑定的设备对象,同时将全局变量的IsBind设置成TRU; 步骤六:进入定位Locat1nActivity,该Ativity分为两个模式,一个是被监护端定位模式,另一个为查看历史轨迹模式; 在被监护端定位模式中,使用Handler.postDelayed(this,10000),在runnable中再次调动该方法同时去获取远程数据被监护端的位置信息,实现对被监护对象的实时更新,获得位置后,使用Amap提供的Marker方法在地图上画出坐标,画坐标的方法封装成一个函数在函数调用时将之前画的marker标记Remove掉,这样就不会造成一个地图界面出现好多个marker的现象出现; 在查看历史轨迹的模式中,监护端去获取被监护端的locat1n_path,再使用得到的ur 1去访问得到文件,读取分析文件获取带有历史坐标的Array 1 ist,其中Array 1 i st中存放的类型为Latlng,ArrayList〈LatLng>,准备好历史坐标后,在地图中使用AMap.addPo ly line (Poly lineOpt 1ns)进行绘制折线,poly l1neOpt 1ns 对象可设置线条宽度、颜色、画的Latlng坐标,直接使用PolylineOpt1ns.addal 1(Arraylist〈latlng〉)放入坐标集合; 步骤七:进入预警功能,先进行初始化界面操作,MapView做地图界面的显示,监护端先向服务器请求绑定设备数据表中的的alarmlocat1n和radius参数,如果参数不为空,贝1J以alarmlocat1n为中心坐标,radius为半径画出被绑定设备的预警范围,如果为空则不处理; 将地图的中心点设置为当前的监护者的位置:使用Locat i onManagerProxy,调用该对象的requestLocat1nData(Locat1nProviderProxy.AMapNetwork,60*1000,15,this),其中第一个参数表示定位的类型,这里是混合定位,当GPS数据优先返回时使用GPS数据,当LBS数据优先返回时使用LBS数据,同时返回时则使用GPS数据,第二个参数为每次获取位置的间隔,第三个参数为移动15米,获取位置信息;调用后,在必须重写的onLocat1nChanged写入后续操作,这里直接修改地图中心点并画出marker; 预警功能中心点的获取:对Amap设置单击事件监听:aMap.setOnMapClickListener();点击后我们将点击获取的坐标致Latlng直接在地图界面上做显示,同时在Editext中输入半径,提交时,将所设定的值update到db_chi ld_info中对应的绑定设备。4.根据权利要求2所述的基于Android平台的远程监护报警系统,其特征在于:所述被监护端的功能实现包括以下步骤:征求用户同意后,直接获取被监护端的设备号,更新到被监护端的数据库中,同时开启Service服务,与后台服务器交换数据信息;Service服务每5秒向服务器数据库发送本机位置信息,发送的位置信息包含位置更新时间Uloadtime及位置的经玮度坐标locat 1n,每五分钟向服务器数据库发送包含历史位置信息的locat1n, txt文档,内嵌的位置信息格式与发送至数据库的信息格式一致; 在发送位置信息的同时,判断该被监护端的所对应设备id在db_chi ld_inf ο中alarmlocat和radius的值是否为空,不为空则获取数据存入应用全局变量中,再使用Floatdistance=AMapUtils.calculateLineDistance(startLatlng,endLatLng),计算出当前位置作标和设置的预警中心坐标的距离,其方法返回的数值单位为m,直接同设置的预警半径radius进行大小的判断,在对比前,应用设置了标志位,通过标志位判断是否发送短信,设定发送短信的条件为被监护对象进行跨界动作时便向监护端发送。5.根据权利要求3或4所述的基于Android平台的远程监护报警系统,其特征在于:所使用的地图为高德地图,高德地图的应用包括以下步骤:首先登陆高德LBS开放平台:http://lbs.amap.com/,注册成为开发者;登陆后,进入控制台界面获取key,在弹出界面中输入移动应用的名称,选择使用的高德地图的服务的Andor i dSDK,在包名选项中填入应用的包名,所述包名必须与移动应用工程中AndroidManifest.xml配置文件里的包名一致;在安全码一栏中填入§從1值,其获取方式为在6(311口86中选择11冊01菜单,选择菜单中?代€6以11068选项,点击andorid的Build项即可查看获取key;之后,同样再次打开应用工程AndroidManifest.xml 配置文件,在 applicat1n 中添加属性: <meta-dataandro i d:name=〃com.amap.ap1.v2.apikey" android:value=//6elac06c9482f57bf61592e2e79alffaV>; 其中value的值为所申请的key。
【专利摘要】本发明提供一种基于Android平台的远程监护报警系统,其特征在于:包括被监护端、监护端及数据库;所述被监护端具有以下功能:绑定用户信息;实时更新预警范围、报警;自我定位、一键呼救;查看绑定信息;监护端具有以下功能:用户注册登录;查询被监护端位置信息;设置预警区域;绑定、修改被监护端账号;所述数据库具有以下功能:向被监护端及监护端提供数据操作接口;需新建在两个表单,一个存储所有被监护端信息,另一个存储所有监护端设备信息。本发明具有可移植性强,可以在多种终端设备使用,不依赖外部硬件,不会发生因为硬件某芯片更换而导致软件部分需重构的问题,功能可拓展性高等优点。
【IPC分类】G08B21/02
【公开号】CN105488949
【申请号】CN201510928813
【发明人】李兰兰, 李祥扬
【申请人】福州大学
【公开日】2016年4月13日
【申请日】2015年12月15日

最新回复(0)