APP下载

基于移动网络的全信息报警监控系统智能接收端设计与实现

2020-06-30张利强陈阵

企业科技与发展 2020年3期
关键词:路径规划报警

张利强 陈阵

【摘 要】社会与自然环境日趋复杂多变,弱势群体面临人身伤害等威胁日趋严峻,急切需要一种移动智能便携的报警防护系统。为此,设计了一款集一键报警、全信息采集、进准呼救、远程控制等功能的智能报警监控系统,文章主要就智能接收端的设计与实现做说明。

【关键词】Android;报警;信息分析;路径规划

【中图分类号】TP277 【文献标识码】A 【文章编号】1674-0688(2020)03-0051-03

1 概述

随着社会经济发展,社会环境越趋复杂多变,青少年、妇女儿童、老年人等弱势群体被侵害的威胁日趋严重。据《2019年最高人民法院工作报告》可知,当年严惩各类人身伤害类刑事案件高达119.8万件,判处罪犯153.8万人。我国60岁以上老年人口已逾2.1亿,老年人突发急病不能提供全面信息及时求助造成严重后果事件频发。各类弱势群体遭遇疾病、意外伤害等如何快速向亲友及相关部门求救,如何确保报警信息能够准确及时提醒被报警人,并留存音频、视频等证据进而遏制恶意伤害的进一步加剧,这是一个亟待解决的问题。

1.1 国内外研究现状

随着互联网与物联网技术的飞速发展,摄像头、红外检测、智能手表、手环等监控安防系统飞速发展,就移动报警系统而言,国内外知名产品有LifeLine、百度卫士、360紧急求救等产品[1]。此类产品能够将现场的图片、录音、位置等信息通过移动网络发送到接收端,当用户看到信息后能够进行处理,能够较有效地减少伤害,但存在用户未及时查看信息的风险。除了发送信息外,部分产品还提供一键拨号报警功能,但无法保证接收端用户将手机设置为静音或震动,未及时接聽电话,从而延误处理事情的最佳时期并可能产生难以预料的伤害;当遇到人质劫持等恶性伤害事件时,拨打电话的方式往往会加剧事态发展,造成更大的伤害。为此,研究一种基于内容识别且能够在接收端持续响铃呼叫的报警系统是国内外研究的重点方向。

1.2 研究意义

因社会复杂多变,青少年儿童辨别能力较低和天性好动等造成人身被故意或意外伤害,同时老龄化社会的加剧,中老年人患急病的数量大幅增加,以及各种民事纠纷、人身财产侵犯等社会治安甚至刑事案件防不胜防等,这给社会和谐稳定带来严重的影响。为此,设计一种基于信息内容识别的智能报警系统,实现紧急情况下通过移动智能报警终端快捷键启动全信息(含图像、声音、位置、时间等)报警并上传至云端留存,接收终端收到报警信息后持续报警呼叫直到手动关闭,此外还可提供路径规划、远程控制等功能。系统支持跨终端,借助物联网技术可以嵌入手机、手表、手环、车载平台、轮椅、穿戴设备等,为用户提供全面的安全防护。

2 系统设计与开发平台

2.1 系统设计

基于移动网络的全信息报警监控系统由报警终端、信息中心、接收端3个核心组件组成,其中报警终端主要实现一键信息采集与报警,信息中心是整个系统的数据交换中心,连接其余2个组件;接收端主要监听报警信息,并根据信息内容启动响应,譬如接收到emergency(紧急)信息后持续发出最大报警声直到手动停止,根据报警的位置信息进行路径规划、远程控制等。系统核心框架如图1所示。

移动智能接收终端的主要功能简要归纳为信息获取(监听短/多媒体信息并对内容进行读取)、信息分析(根据内容判断是否包含报警信息,将判断后的结果作为后续程序的开关)、持续报警、路径规划、证据留存(音视频下载存储)等模块,具体功能如图2所示。

2.2 开发平台

Android是一款由谷歌开发的基于Linux核心的开源移动操作系统,由Linux内核、运行核心库、框架及应用等四大组件构成[2]。因为Android具有开源可移植等特性,所以它可以广泛应用于手机、平板、智能硬件等可移动设备。为了满足手机、手环、拐杖、轮椅等各种移动平台的需求,系统采用Android作为开发平台。

3 功能实现

移动智能接收终端主要功能为监听信息广播,然后对信息进行分析,校验是否包含报警信息,若为报警信息则启动报警、路径规划等子功能。具体流程为调用initParamter方法初始化参数、获取系统授权,接着启动onReceive()方法监听系统广播,当监听到信息广播,调用getSmsBody()方法获得信息内容,并通过messageTypeJudge()方法对信息类别进行判定。如果是多媒体信息,则通过packCurrentMms()将多媒体信息进行封装,并将封装后的结果传递到executeAlamSmsBody()方法,普通文本信息则直接调用executeAlamSmsBody()方法对信息内容进行分析,判断是否包含报警信息,如果包含则通过startAlarm()、startMap等方法实现报警和路径规划等功能。

3.1 信息获取

在进行报警处理之前需要通过监听手机操作系统的短信、多媒体信息广播完成信息的获取,首先通过new方法分别实例化SMSReceiver与IntentFilter两个实体对象,然后调用filter对象的addAction(“android.provider.Telephony.SMS_RECEIVED”)方法使其能够拦截SMS信息广播,最后通过MainActivity对象调用registerReceiver(receiver,filter)方法完成信息广播的监听,但监听到有SMS_RECEIVED广播时,表示系统接收到信息,此时需要根据Action对广播进行判断进而对信息进行分类,如果接收到的Action是Intents.WAP_PUSH_RECEIVED_ACTION,则表示收到的是多媒体信息;如果接收到的Action是Intents.SMS_RECEIVED_ACTION,则表示该信息为短信。然后根据信息的分类不同调用不同的数据读取分析方法。如果判断为多媒体信息,则调用executeAlarm(20)对多媒体信息内容进行获取;如果是短信,则调用executeAlarmSmsBody(body,phoneNumber)完成短信信息的获取。

3.2 信息分析

信息分析主要是通过对pdu中的内容进行分析比较,判断内容中是否含有报警信息,短信和多媒体信息的基础流程差异不大,现以多媒体信息分析为例说明。首先调用MmsUtil.packCUrrentMms(mContext)方法将收到的多媒体信息封装为Mms对象。然后调用mPduDao.getCurrentPdu()方法获得最新的多媒体信息对象currentPdu,如果currentPdu为空则结束整个封装,并返回null,反之将主题、是否已读取、发送时间、发送人等信息通过setter方法注入mms对象中,接着调用mPartDao.getPartList获得封裝所有附件的链表parts,并通过foreach遍历parts链表,在遍历过程中调用getTextAccessory()获得附件,getAudio()获得音频存储路径,getVideo()获得存储视频的路径,getBitmap()获取图片。遍历完成后将获得的附件信息通过setter方法注入mms对象。最后调用isAlarmMms(mms)方法,对信息内容进行分析,判定是否包含预制的报警关键信息,并将结果反馈到MainActity。

3.3 报警服务

3.3.1 持续报警

当判定信息为报警信息后,调用MmsUtil.startAlarm(mContext)启动报警,为了保证接收到报警信息后,不管手机是否处于响铃状态,都能够启动报警铃声,首先通过context.getSystemService(Service.VIBRATOR_SERVICE)获得震动服务对象vibrator,vibrator.vibrate(new long[]{1000,1500},0)解除震动状态,接着调用context.getSystemService(Context.AUDIO_SERVICE)获得音乐播放对象audioManager,然后通过audioManager.getStreamVolume(AudioManager.STREAM_MUSIC)获得当前音量值,audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);获得系统最大音量值,audioManager.setStreamVolume(AudioManager.STR-

EAM_MUSIC,maxVolume,AudioManager.FLAG_PL-

AY_SOUND);将音量设置为系统最大音量,最后通过MediaPlayer.create(context,Constant.ALARMING_MUSIC)获得音乐播放对象mediaPlayer,并通过mediaPlayer.setLooping(true)设置循环播放,接着调用start()方法播放报警音乐。

3.3.2 路径规划

路径规划需要从报警信息中获取经纬度等地址信息,并将信息进行转化作为目的地坐标,然后启动系统地图,调用路径规划方法完成路径显示,流程如图3所示。

首先通过MmsUtil.getMmsContent(mMms)获得报警信息中的经纬度地址,然后调用StrUtil的getLat2Lng(mmsContent)方法,将经纬度字符串转换为Map

LAT),Double lng=map.get(Constant.LOCATION_LNG),然后将lat与lng作为参数传递给OsUtil.startMap(mContext,lat,lng)方法,在startMap方法中调用SDKInitializer.initialize(getApplicationContext()),完成SDK的实例化,调用new BMapManager(this.getApplicationContext())方法获得地图引擎类对象bMapManager,调用bMapManager.createMapView()方法获得地图视图对象mMapView,并调用其getController()方法获得地图控制对象mController再采用this.getResources().getDrawable-(R.drawable.icon_marka)方法标注位置且通过mMapView.getOverlays().Add(new MyOver-layItem(drawable))方法将标注添加到地图,接着刷新,在地图上显示地理位置;通过latLngDB对象的setLat(lat)与setLng(lng)方法设置目标位置,调用latLngDB.save()方法保存目的位置,通过mMapView.onResume()进行地图路径规划显示。

4 测试与总结

完成设计后,导出apk安装文件,分别在移动智能手机、平板电脑、树莓派等终端中进行测试。测试发现系统能够在各类测试终端中成功获得信息中的报警关键信息,并且根据信息内容等级启动报警服务。基于移动网络的全信息报警监控系统集成创新实现一键全信息采集报警,智能接收端持续报警呼叫并可供查看音视频和位置地图信息、远程监控功能,能够圆满地完成报警信息的识别与报警。

参 考 文 献.

[1]董平.百度手机卫士“一键求救”太实用[J].计算机与网络,2015,41(23):39.

[2]张华亮.基于Linux自由及开放源代码的Android操作系统[J].计算机与网络,2016,42(3/4):108-111.

[3]张佳进,陈立畅,李雪飞.Android智能手机的紧急呼救系统设计[J].单片机与嵌入式系统应用,2015(5):75-78.

[4]罗鹏,冯镜吾,冷晓晗.基于Android手机语音报警系统的设计与实现[J].电脑知识与技术,2019(21):82-

86.

猜你喜欢

路径规划报警
小心,墙纸在报警
鞋子摆放透露的信息
清扫机器人的新型田埂式路径规划方法
自适应的智能搬运路径规划算法
基于B样条曲线的无人车路径规划算法
基于改进的Dijkstra算法AGV路径规划研究
死于密室的租住者
基于Wonderware平台的分布式报警系统的设计与实现