儿童失踪预警平台的设计与实现
来源:用户上传
作者:
[摘要]在信息化快速发展的当今社会,借助网络的力量帮助失踪儿童重归家庭是最好的选择,因此研发一款儿童失踪预警平台App尤为重要,该平台借助成熟的移动互联网技术和GIS地理信息系统技术的支持,并采用WebView与原生App混合开发的模式完成,本系统包括失联模块,用户信息设置及预警模块三个模块,该平台实现了用户可以不用登录一键通话报警功能,拍照的功能,定位的功能,发短信的功能。该平台通过将家长、失踪儿童、警方、以及社会大众的联动机制,实现了线索共享,能在第一时间获取失踪儿童的线索,有一款儿童失踪预警平台是非常必要的。
[关键词]失踪预警 Hybire开发模式 WebView
1.引言
在美国,儿童丢失寻回率能够达到97.7%,而在中国,据不完全统计不足1%。现在22个国家建立了符合自己本国国情的儿童失踪预警平台,而在中国还是个空白,社会大众期望能有一个符合中国国情的儿童是踪预警平台。
儿童在脱离父母及其监护人的时间越长,那么这个孩子的找回的概率就会降低,真正的预防是提升全民的儿童失踪防范的意识,加大儿童失踪犯罪的打击力度,建立一套全社会的监护体系,而不是依靠组织或者个人的帮助。
2系统设计
2.1总体设计
经过需求分析,此预警平台分为失联平台,预警平台,我的设置三个模块。使用了腾讯地图SDK实现定位功能,调用系统发短息及拨打电话等功能。此系统可以快速建立儿童失踪预警时的家长,儿童,警方,及社会大众的响应体系,线索共享快速的锁定目标,解救儿童,并且完善国内此项平台的空白,完善社会的响应机制。
2.2系统工作流程
用户登录,要先经过用户名和密码的验证,验证通过之后,就可以进行下面的操作。
(1)失联平台
此处用户可以在不登录的情况下浏览失踪儿童的头像姓名年龄等简要的信息,若发现是疑似儿童可以点击相应儿童照片进入下级页面,此处可以看到失踪儿童的详细信息,可以选择拨打电话反馈到110报警平台,或者登陆后将此预警线索反馈给家长。
(2)预警平台
已经添加丢失儿童档案的用户可以选择发布预警,填写丢失地点时间,详细描述,以短息的形式一键发布到110报警平台并同步到儿童失踪预警平台,发布成功后用户可以查看自己的预警信息,并查看反馈线索。
(3)我的设置
此模块用户可以填写一些个人信息,更改密码头像,申请实名认证等操作。
2.3系统数据库设计
(1)用户登录数据,包括登录名(可以旧电话号码或用户名字),用户密码,设备类型(1=ios,2=android,3=wechat),經度,纬度,返回信息(结果,结果说明,用户ID,用户token)等信息。
(2)儿童档案数据,包括用户ID,返回值(结果,结果说明,儿童ID,儿童姓名,照片集的第一张,是否实名认证,是否预警中)
(3)发布预警数据,包括用户ID,儿童ID,丢失时间,丢失地址,用户位置,描述关键词过滤,返回值(结果代码,结果说明,预警ID)
3详细设计
3.1系统设计目标分析
本系统主要功能如下:
1.用户在未登录的情况下可以浏览其他家长发布的预警信息,可以查看丢失儿童的详细列表,若发现有什么重要线索此时可以反馈警方同时将此条线索发到家长手机当中。
2.用户在注册成功后登录,可以选择添加自己的或者亲属的儿童档案,并及时的发布到预警平台。
3.2系统功能模块介绍
3.2.1登录模块
该系统为用户提供三处登录注册的入口,方便用户的登录与注册。
(1)注册
新用户可以通过手机号进行注册,填入手机号后会给用户手机发送一条验证码,填上初始密码,再次确认密码,无误后完成注册。
(2)登录
拥有账号或者刚刚注册成功的用户可以点击登录,此时用户可以选择对自己的个人账号进行设置,上传头像,实名认证等操作。
3.2.2主界面模块
主界面有三大部分,分别是失踪儿童,预警平台,我的设置,相应的主界面。
(1)失踪儿童
①失踪儿童列表
该界面在用户启动程序后无论登录与否都会浏览此页面,该界面主要展示失踪儿童的姓名,性别,年龄,丢失时间和地点等重要信息,用户可以随机点击查看更加详细的内容。
②丢失详情
用户在点击某一个丢失儿童的时候会进入相应丢失,此界面会展示更加详细的儿童档案,可以浏览照片,体型以及丢失的详细描述。
③反馈警方
点击反馈警方,将拨打电话到110报警平台,将线索反馈到警方。
④反馈家长
点击反馈家长,将线索信息发到家长手机当中。
(2)预警平台
①发布预警
用户在添加完儿童丢失档案的情况下,可以选择发布预警,选择档案,选择丢失时间地点以及详细描述等,可以将此条预警信息发送到预警平台,并以短信的形式发送到110报警平台,及时得到警方的帮助。
该平台用到的数据是由php所编写的后台,并以接口的方式进行数据的请求,下面我以发布预警为例,简单的介绍一下此平台的数据操作流程。
首先此平台运用Volley的数据请求框架对数据的请求进行操作。Volley是Android平台上的网络通讯库,能使网络通讯更快,更简单,更健壮。首先声明Json对象作reqData为请求后台数据库接口的参数。
这样会将获取到的数据显示到UI上面。
②我的预警 用户在发布成功预警的时候,点击我的预警会浏览发布预警的情况,以及查看是否有线索的反馈。
(3)我的设置
此处用户可以对自己的账号进行操作,更改一些个人信息。
4系统测试
(1)小米手机物理返回按键失灵
Miui操作系統,对Android内核做了一定的更改,导致小米的物理返回按键在使用webview控件的时候不会触发onBackPressed()这个方法,直接导致无法监听物理返回按钮的点击事件同样无法获得页面的标题,解决的办法是将页面每次访问的标题存到一个数组当中,这样在返回的时候直接去数组里面取值,每返回一次数组的最后一个值去掉数量并减一。
(2)RecycleView的item中有Button或者CheckBox焦点冲突的问题。
在开发过程当中遇到这样的一个问题,在自定义RecycleView的时候,自己的Adapter去继承baseadapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取焦点。经过查找资料,发现出现此类问题的原因是因为在自己定义的1tem中存在诸如imageButton,button,checkbox等子类控件,这些子类控件会优先获取到焦点,所以当点击item时发生变化的是子控件,item本身并没有响应。
这时候就可以用descendantfocusability来解决,其属性值有三个:beforedescendants:viewgroup会优先其子类控件获得焦点,afterdescendants:viewgroup只有当子类控件不去要获取焦点的时才获取焦点,blocksdescendants:viewgroup会覆盖子类控件而直接获取焦点。
(4)android webview里HTML5的地理位置定位,不能定位成功且不能显示地图,下面是具体的解决方法。
①启用数据库,webSettings.setDatabaseEnabled(true);
②启用地理定位,webSettings.setGeolocationEnabled( true);
③设置定位的数据库路径,webSettings.setGeolicationDatabasePath( dir);
④最重要的方法,一定要设置,webSettings.setDomStorageEnabled( true);
5结语
儿童失踪预警平台具有功能简单易懂,操作方便,用户可以轻松使用。通过儿童失踪预警平台的设计与实现,我学会了很多Android开发方面的知识,编程技能与技巧也得到了很大的提高,受益匪浅。在研发设计过程充满了无尽的回忆和收获。此外在设计的过程中,走了很多的弯路发现自己有很多的不足,对开发工具的掌握不是很全面,因此我应该多学习一些编程技巧与思想,使自己的能力得到提升。
转载注明来源:https://www.xzbu.com/2/view-14861332.htm