基于Android的安心行程APP
2021-10-29张红燕石晓慧
张红燕,石晓慧
(贺州学院,广西贺州,542899)
0 引言
在日常生活中,意外事故时有发生,人们的安全意识也逐渐提高,遇到突发情况时能否及时得到救助成为保证其人身安全的关键,基于智能机的求救服务是一项以安全防范为本的新需求。与各个领域的专业设备相比,我们在日常生活中需要的是更为便携、操作简单的人身安全防范工具,因此开发基于Android的安全行程APP 有着广泛的应用前景。
1 系统设计
■1.1 APP 总体架构
安心行程APP 在获得硬件设备支持的基础上,将围绕以下两个方面来设计:首先要确保APP的处理能力能正常使用软件的基本功能,且具备良好的性能;其次要从使用者使用需求的角度出发,努力提高系统的可靠性、实用性及安全性等。软件设计需要满足以下四个方面:
(1)系统基本功能的实现;
(2)冲突事件处理能力的提高;
(3)系统可扩展性能的保障;
(4)UI 界面的简洁和便于操作。
安心行程APP 主要包括日程提醒功能模块和一键求救功能模块,两个模块分别实现不同的功能,功能模块图如图1 所示。
图1 功能模块图
安心行程APP 最基本的一项功能模块是日程提醒功能模块,这一模块的功能实现了日程管理的基本要求,囊括了对日程的增加、删除、修改功能。此模块功能的实现与其他日程管理类软件相似,但安心行程APP 区别于普通日程管理软件的地方在于,当用户出现无法使用手机的紧急情况时,日程提醒弹出两分钟内没有得到用户确认会自动启用一键求救功能模块。
一键求救功能模块的核心是及时发出求救信息,求救信息将包含求救内容和用户当前位置坐标经纬度的信息以短信的形式发送给预先设定好的紧急联系人。手机定位平台及手机信息发送平台这两个部分是一键求救功能模块关键内容。
用户出现突发情况时地理位置的经纬度通过手机定位平台获取,经处理后的位置信息将以不同的方式保存到手机上,作为遇险信息的内容或载体。随着社会的进步和科学技术的发展,智能手机的定位技术突飞猛进,得到了在生活、科学、医药等领域得到了广泛的应用。现阶段,手机上使用的定位技术主要有三种:GPS 定位技术、基站定位技术和a-gnss 辅助卫星定位技术。安卓平台在在定位方面形成了较为完备的系统架构,各种硬件可以方便地在此架构中进行集成,因此开发基于定位技术的位置应用变得不再困难。
根据绑定的多个发送对象这一手段,手机信息发送平台可以实现点对点群发信息模式,并将救援短信发送给应急联系人,从而达到求救、求助的目的。信息发送平台一直是信息时代手机不可或缺的一部分,由于Android 平台优异的对外开放性,该平台下第三方软件的移植和使用会变得非常便捷,所以功能多样的信息发送平台定然会为紧急求救提供可靠的保障。
■1.2 软件采用模式设计
安心行程APP的设计模式采用了主流的MVC 设计模式,MVC 模式创新地将UI 与业务逻辑分离,将代码拆分为三个概念单元,解决控制逻辑、数据处理逻辑和界面交互耦合的问题。此模式下针对不同功能需求可进行代码类的单独修改,便于后期出现功能需求变动时类的维护与修改。在MVC的三个部件中,模型负责数据的加载和存储,视图负责页面的展示,控制器负责逻辑控制。在 MVC 架构中,视图产生事件后通知到控制器,然后控制器进行一系列的逻辑处理,然后通知模型更新数据,最后通知视图更新数据结构接口,这是一个完整的MVC数据流。还有一点是,对于结构复杂的程序而言,MVC 模式对于程序带来的简化看起来更直观且用户体验更优秀。通过分离自身系统的基本部分,MVC 模式也赋予了每个部分应有的基本功能。
用户在安心行程APP 所创建任务进程及所保存的数据会包含在MVC 模式的架构中,并引入了对外进行数据信息共享的接口,使用 MVC 模式的好处有:结构清晰,职责划分清晰,每个部分各司其职,降低了界面的交互耦合,有利于各个组件的重复利用。
■1.3 软件层次模型
安心行程APP 采用层次化结构设计,分为数据采集层、数据交互层、通信层及表示层。
数据采集层:主要获取位置信息、站点信息、联系方式等相关信息,紧急联系人的联系方式通过电话簿组件获取,用户的地理位置经纬度则通过位置组件获得。
数据处理层:主要用于访问用户计划日程信息、求救短信内容、紧急联系人信息、地理位置坐标信息等数据访问。
通信层:主要利用短信息服务组件进行给紧急联系人发送求救短信的操作。
表示层:即UI 交互界面层,接受用户增加、修改、删除日程信息;允许用户增加、修改、删除紧急联系人信息及求救短信内容。
2 系统实现
安心行程APP 是在Windows XP 平台下,采用Java语言作为编程语言开发的一款软件。进入APP 后主页面为日程页面,如图2 所示,该界面能进行日程的新建、编辑及删除等操作。用户遇到突发情况时点击“一键求救”按钮可以将事先编辑好的求救短信内容发送给设定好的紧急联系人,求救短息发送内容如图3 所示。通过点击“设置”按钮能进入设置页面,设置界面能进行紧急联系人及求救短信内容的编辑。软件流程图如图4 所示。
图2 日程界面图
图3 求救短信内容图
图4 软件流程图
■2.1 紧急求救功能
2.1.1 获取定位
在Android 开发当中,大部分拥有地理位置功能的应用会频繁使用到定位功能,绝大部分开发者都会采用百度地图或高德地图这两个地图平台提供的sdk,开放API。但是在不需要提供预览地图与地图界面并且只需要经纬度之类并的应用场景中,使用百度地图,高德地图提供的sdk 会造成资源浪费,因此为了缩小apk的体积,安心行程APP使用Location Manager 这个Android API 给我们提供的类就可以满足用户的需求了。
2.1.2 短信发送
为确保用户遇到突发情况时能及时向预先设定的紧急联系人发送短信进行求救,组件间采用异步模式。信息采集组件使用Activity 形式,信息发送组件使用Service 形式[1]。Android 有许多专门应用于通信服务的类,SMS 类就是Android 提供的一种存储与转发服务[2]。首先需要获得调起系统发送短息页面的权限,接着通过调用SmsManager.getDefault() 获取短信管理器功能。然后将紧急联系人、短信内容、求救者位置经纬度等求救信息从本地文件中提取,并通过 BroadcastReceiver 机制向后台信息发送组件发送整合好所有信息的求救短信。在收到求救信息后会,信息发送组件会开始一个新进程,并将求救短信发送到紧急联系人手机上,成功发送求救信息后终止短信发送进程并释放所有后台。
■2.2 软件调试
该系统采用的是Android 10 版本的智能手机进行软件调试,首先将Android Studio 写好的软件源码编译并打包生成apk 文件,之后在测试机中将apk 安装好,就可以进行测试了。
在安卓手机上运行该软件,系统首先进入日程页面,点击新建日程,输入地点、出发和到达的日期及时间等信息确认软件是否能正常、准时弹出日程提醒窗口。为了保障一键求救功能的正常输入,要预先输入紧急联系人及求救短信内容,测试时将紧急联系人设为本机号码。第一次测试时,日程提醒功能能正常使用,但发现软件进行日程提醒时只弹出弹窗,无震动提醒,一键求救功能及用户无回应系统自动发送求救短信等功能皆可正常使用。
3 结语
本软件的设计方案的软件开发平台为用户数量广泛的Android 开发平台,借助安卓平台丰富的组件库将时钟功能、定位功能及信息发送功能有效的结合在一起,各个模块间相互配合完成求救信息的采集与及时发送。
该APP 基于分层模型进行数据存储,通过异步模式向紧急联系人发送求救短信,求救短信内的地理位置经纬度由GPS 进行定位获得,安心行程App 实现了日程管理及紧急求救功能,用户在遇到突发情况时可通过点击“一键求救”按钮向紧急联系人发送带有当前坐标的求救短信,若APP在行程结束确认用户情况时,用户无法按时确认,此时也会向紧急联系人发送包含经纬度的求救短信,以保证用户出行安全。
由于时间及系统硬件条件的限制,本文中安心行程APP的设计方案还不够完善,后续还可以在以下方面进行改进:
(1)本文在Android 平台上提出一种安全行程APP设计方案,随着通信硬件设备性能的不断发展,求救信息的采集方式可以更为多样化,如增加周围环境图片、语音甚至是视频信息的收集,且对不同价值的信息分配不同的优先级,可以建立采集信息优先级的分级系统,出现突发情况遵循由高至低的优先级顺序进行求救信息的发送,提高有效救援的效率。
(2)增加历史行程轨迹查询功能,便于用户回溯过往行程及出现突发情况时及时进行救援。