基于Android的一键智能报警系统设计与实现
2016-11-07徐红江钱宇豪朱晶晶沈微微
徐红江++钱宇豪++朱晶晶++沈微微++刘杰
摘要:针对电话报警不及时、不可靠的问题,设计开发了一款基于Android的一键智能报警系统。移动互联网应用广泛,智能手机已普及,Android系统占比很大。在Android终端采用多模式融合的定位方法,实现了警民瞬时联动的安防体系。
关键词:移动互联网;智能定位;一键报警;Android
DOIDOI:10.11907/rjdk.161618
中图分类号:TP319
文献标识码:A文章编号文章编号:16727800(2016)009007903
基金项目基金项目:2016年宿迁学院大学生创新训练项目(2016);宿迁市科技计划项目(S201410,Z201445)
作者简介作者简介:徐红江(1993-),男,江苏盐城人,宿迁学院信息工程学院学生,研究方向为Android应用开发;钱宇豪(1993-),男,江苏苏州人,宿迁学院信息工程学院学生,研究方向为Android应用开发;朱晶晶(1995-),女,江苏泰州人,宿迁学院信息工程学院学生,研究方向为UI设计;沈微微(1983-),女,江苏宿迁人,硕士,宿迁学院信息工程学院讲师,研究方向为图像处理、模式识别、数据挖掘;刘杰(1981-),男,江苏扬州人,硕士,宿迁学院信息工程学院讲师,研究方向为计算机软件及应用、物联网、移动互联网络。
0引言
安全事故是一个严重的社会问题。根据相关数据分析,这方面主要问题有:①报警不及时,错过最佳救援时机,受害人不能得到及时救助;②案发地点随机,无法及时有效获取事发地的位置信息,救援不能及时响应[13]。
本文设计开发了一款基于Android的一键智能报警系统,不仅简化了报警流程,而且具有自动定位功能,文字、图片、视频等信息可一键上传,在一定程度上避免了报警不及时、不可靠的弊端。接警终端通过手机可以直观显示报警地点,民警可通过手机路线导航出警,可达到快速出警要求。
1系统总体结构设计
本系统由Android报警客户端、Android接警客户端和接警后台3部分组成。当用户遇到危险时,使用报警手机客户端自动定位,选择报警类型与等级,点击短信、照片、录音或视频报警中的一种,系统自动通过网络发送信息给接警中心,服务器与接警客户端同步监听并接收报警信息。警务人员在接警客户端可快捷查看报警信息、出事地点位置及导航路线。系统总体结构设计如图1所示。
2报警系统关键技术分析
2.1系统实时性
报警系统对数据发送和接收的实时性、准确性要求很高,本系统设计采用多线程机制,保证各子模块及时并行完成任务,采用Android自带v4包里的SwipeRefreshLayout类实现下拉刷新。报警客户端包括GPS定位线程、发送短信线程及数据上传线程。本系统采用移动网辅助GPS定位技术,定位时间受网络环境和信号强度的影响,在网络和信号环境差的情况下,定位时间较长[45]。为防止定位未成功前,系统发送短信或上传信息到服务器造成定位信息错误,需要对发送短信线程和数据上传线程进行延时操作。
2.2定位及导航技术
系统定位导航采用GPS、WiFi、基站等多种定位方式的百度地图API,实现在报警端多模式融合定位,也可在接警端地图定位、路径规划和导航,符合一键式智能报警系统需求。
使用百度地图API,需要申请百度地图API Key,否则无法获取经度、纬度、当前所在位置的城区以及街道等信息[6]。此外,API中的驾车导航必须打开GPS才能正常使用。百度地图Android定位SDK参数如表1所示。
2.3短信报警
本文调用系统短信接口发送短信,在程序内部将短信内容格式写好,再根据报警时在APP中所选的信息发送给紧急联系人和后台服务器。在APP中调用系统短信接口发送短信,需要在AndroidManifest.xml文件中添加如下代码:
2.4拍照上传报警
调用系统相机,使用Surface View自定义取景界面,使用Preview()方法预览取景画面进行报警。拍照之前,先通过File类创建图片保存路径和保存文件夹,拍照完成后到指定路径读取图片,运用Http Client类相关方法上传照片,服务器接收保存图片到指定目录并将图片路径存放到数据库中。在APP中实现拍摄图片并保存,需要在AndroidManifest.xml文件中添加如下代码:
2.5录音和视频上传报警
录音是实例化MediaRecorder对象之后,调用其setAudioSource方法设置声音来源、setOutputFormat方法设置输出音频格式、setAudioEncoder方法设置音频文件的编码等,用参数控制文件的大小、声音的品质。视频录制和音频录制步骤一致,不过视频录制要显示采集的图像,要在声音来源设置后调用MediaRecorder的setPreviewDisplay方法使用SurfaceView预览。在APP中实现录音和拍视频保存本地,需要在AndroidManifest.xml文件中添加如下代码:
2.6获取后台报警数据
通过Android接警系统与后台服务器的Http通信获取后台报警信息。Android接警系统发送Http请求给后台,在获取到后台返回的JSON数据后解析绑定到应用的控件上显示。本文使用了KJFrameForAndroid第三方框架中KJHttp的post请求和fastjon第三方框架中的json解析,代码如下:
//获取待处理报警信息数据
public void getPendingData() {
KJHttp kjh;
//在获取数据之前,检查网络连接是否正常
if (CheckNet.isNetworkAv(getActivity())) {
mySetVisible(pending_listview);//网络连接正常显示待处理报警信息
mySetVisible(data_empty);//网络连接正常,没有数据则提示数据为空
mySetGone(network);//网络连接失败则显示网络有问题
String url = Constant.url + "/AlarmInfoAction";//访问服务器项目Servlet的路径
HttpParams params = new HttpParams();
params.put("pageNow", pageNow);//当前页码
params.put("pageSize", pageSize);//获取数据的条数
params.put("param0", "get_pending_alarm_info");//获取的数据类型
kjh.post(url, params, false, new HttpCallBack() {
@Override
public void onSuccess(String t) {
super.onSuccess(t);
pending_datas = JSON.parseArray(t, AlarmInfo.class);//待处理报警信息,这里使用了FastJson解析 if (pending_datas.isEmpty()) {
data_empty.setVisibility(View.VISIBLE);
} else {
data_empty.setVisibility(View.GONE);
pendingAdapter = new MyAlarmInfoPendingAdp(
pending_listview, pending_datas,
R.layout.item_alarm_info);
pending_listview.setAdapter(pendingAdapter);
}
}
});
} else {
mySetGone(pending_listview);
mySetGone(data_empty);
mySetVisible(network);
}
}
在APP中访问网络并创建缓存,需要在AndroidManifest.xml文件中添加如下代码:
3报警系统设计
3.1报警客户端设计
报警客户端设计了报警的一些常见描述,编辑完成后自动保存到本地。当用户第一次使用APP将基本信息填写后,登录到报警界面,再次打开就不用二次登录。打开系统(用户允许的情况下)会自动定位,用户只需选择报警类型(如车祸、火灾等)、报警等级,即可通过短信、照片、录音、视频进行一键报警。拍照报警工作流程如图2所示。
短信、录音、视频工作流程与拍照类似。另外报警用户客户端集成了警报模拟声功能,当用户在遇到危险需要求助时点按模拟警报声,引起周围人注意,在一定程度上震慑作案人。
3.2接警客户端设计
民警登录系统后,报警信息以列表形式展现,第一时间看到当前片区的最新报警情况,点击列表子选项查看详情。在详情界面设计了接警和路径规划及导航功能。民警看到紧急警情时,可自行接警以确保事故处理效率。接警流程如图3所示。
3.3Web后台管理设计
Web后台由报警信息管理和警察信息管理组成,主要工作包括查看并匹配待处理信息、查看已处理信息、录入警察信息、查看警察信息。Web后台一直运行在服务器上,管理员可实时监听报警信息。当后端监听到报警信息时,后台会有报警提示音,管理员可以查看案情,匹配事发片区内的警察,及时了解案件处理情况。
4系统实现
系统部分实现如图4、图5所示。测试结果表明,报警客户端在网络正常环境下室内外定位速度均在1s以内,户外打开GPS报警平均精度达到10m以内,室内报警平均精度达到60m。接警客户端可以接收处理多条报警信息,详细信息显示正常、报警人位置显示准确、多种路径规划线路显示正常、驾车导航使用正常。
5结语
基于Android的一键智能报警系统,结合百度地图API实现多模式融合定位,运用Android SDK实现短信息发送、拍照、音视频录制及存储,以及上传文件到接警后台服务器,将报警端、接警端、后台服务器3者结合在一起,实现实时通信。系统结构合理、操作简单、测试效果良好,有效解决了报警人无法提供准确位置的问题,为出警提供了最优路径规划,为快速高效处警提供了很好的解决方案。
参考文献参考文献:
[1]杨恒,魏丫丫,李彬,等.定位技术[M].北京:电子工业出版社,2013.
[2]肖云涛,欧林林,俞立.基于线性时序逻辑的最优巡回路径规划[J].自动化学报,2014(10):21262133.
[3]陈韶飞,张炯,李俊.一种新型反恐防暴机器人的概念化设计[J].广西科技大学学报,2015(9):6567.
[4]吴丽淳,樊爽.基于安卓平台的手机定位软件开发[J].计算机与现代化,2014(9):9598.
[5]刘洺辛,孙建利.基于能效的WLAN室内定位系统模型设计与实现[J].仪器仪表学报,2014(5):11691178.
[6]丁一,金华,李允俊.基于Android与百度地图的智能报警系统[J].单片机与嵌入式系统应用,2015(3):3942.
责任编辑(责任编辑:杜能钢)