基于Android平台的地震防护手册软件开发

2014-12-26 16:32张楠赵士达李坤
科技资讯 2014年28期
关键词:防震安卓邮箱

张楠 赵士达 李坤

摘 要:目前广大民众对地震科普知识的关注度极高,对于地震知识的获取,网络也成为了重要的防震减灾知识获取渠道。现有的相关地震知识的安卓平台软件基本都是简单的介绍一些地震知识,并且内容多来自网络留言或跟帖,各式各样种类繁多,内部不全面。本软件能作为公共服务产品,方便天津市民通过网络下载,获取专业的防震与自救知识,进行天津市应急避难场所信息速查及定位,地震事件发生后呼叫12322进行电话及邮箱求救等功能。

关键词:网络 地震科普 防震 避难场所

中图分类号:TP333 文献标识码:A 文章编号:1672-3791(2014)10(a)-0011-02

汶川、玉树地震之后,廣大民众对地震科普知识的关注度极高,随着网络的发展,越来越多的人工作、学习、业余生活都离不开网络,然而对于地震知识的获取,网络也成为重要的防震减灾知识获取渠道。Android平台在中国市场占有率极高,进行安卓平台的地震科普知识软件开发及推广,能广泛的宣传地震知识。

Android平台是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。网络上现有的相关地震知识的安卓平台软件,例如:“加强自我防护:地震应急防护手册”;“地震科普百科”;“地震自救知识大全”等都是简单的介绍了一些地震知识,并且内容多来自网络留言或跟帖,各式各样种类繁多,内部不全面。本软件能作为公共服务产品,方便天津市民通过网络下载,直接安装至手机或平板电脑,获取专业的防震与自救知识,进行天津市应急避难场所信息速查及定位,链接12322进行电话及邮箱求救等功能。

1 系统分析与总体设计

针对软件需求,开发一套可以在安卓4.2以上系统基于Android平台的地震防护手册软件开发,包含:防震与自救知识,天津市应急避难场所信息速查与定位,12322电话呼叫及12322邮箱求助四大模块。

本系统分为手机APP部分和后台服务系统两部分,手机应用部分完成与客户的操作交互、数据查询等功能,后台服务系统通过手机APP响应用户,完成业务操作。采用Android原生程序中的功能、browser配合B/S架构的程序共同搭建,其中Android应用负责启动内嵌浏览器组件,该组件加载web程序主页面从而实现数据的展现。

1.1 手机APP

手机APP基于Android的SDK4.2进行开发,支持客户通过手机触摸、拨打电话、发送邮件等多种途径,完成信息查询及反馈。

避难场所查询与定位功能:将应急避难场所的GPS信息存储在数据库中,通过手机GPS功能获取到用户的位置,使用LBS技术获取到具体用户最近的避难场所的位置,从而实现基于手机定位的避难场所的查询。编写安卓系统的原生应用程序,在应用程序中嵌入开源的地图控件,如百度地图,此类地图软件拥有开放的api接口,用于第三方应用的调用。

防震与自救知识采用JSP形式,形成web页面便于浏览也便于后期对信息的添加与修改。

12322电话及邮箱求助开放权限调用Android原生程序中的功能。

界面显示采用安卓程序嵌套一个webview空间用户显示后台web程序。

1.2 后台服务系统

后台web程序采用MVC三层架构模式,分别为Model、View、Controller。其中Model主要用来编写实体类对象,View为jsp显示端,Controller为逻辑控制端。实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。并且此模式通过对复杂度的简化,使程序结构更加直观。

1.3 数据建模部分

此系统是建立在Mysql的基础上完成的数据建模,采用Mysql绿色版本简单易用随时搭建。数据库表主要存储应急避难场所地点的编号、名称、面积、容纳人口、经纬度、地址,便于后期对新地点的添加与修改。

2 系统功能设计与实现

2.1 GPS定位设计与实现

View为jsp显示端,首页显示各项功能链接图标及按照最近避难场所进行的排序。

手机端APK主要使用安卓手机的网络定位功能,通过经纬度查询数据库中避难场所的经纬度,通过java算法排序查找到就近的避难场所。以下是算法代码:private static final double EARTH_RADIUS=6378137;

private static double rad(double?d)

{

return d * Math.PI / 180.0;

}

public static int GetDistance(double lng1,double lat1,double lng2,double lat2){

double radLat1=rad(lat1);

double radLat2=rad(lat2);

double a=radLat1-radLat2;

double b=rad(lng1)-rad(lng2);

double s=2*Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2)

+Math.cos(radLat1)*Math.cos(radLat2)

*Math.pow(Math.sin(b/2),2)));

s=s*EARTH_RADIUS;

return(int)(Math.round(s* 10000)/10000);

}

public int compare(Object arg0,Object arg1) {

Integer dis1=Integer.valueOf(((Place)arg0).getDis());

Integer dis2=Integer.valueOf(((Place)arg1).getDis());

return?dis1.compareTo(dis2);

}

Place?comparator=new Place();

Collections.sort(plist,comparator);

2.2 邮件求救功能模块设计与实现

邮件求救功能主要使用javax.mail.internet包实现,预设发送邮箱及接收邮箱,通过对手机邮箱的调用发送当前坐标至预设邮箱。发送内容为:“求救!我的位置在经度XX,纬度XX”。接收经纬度后工作人员可用专业地图软件进行位置查询,定位求救人员位置。

2.3 查询功能设计与实现

进入地图页面能进行精确或模糊查找,并能显示查找地点或全部显示附近所有地点。地图通过百度API View控件定义显示,界面中的底图通过百度地图SDK接口来调用百度地图,云检索返回的响应参数解析后在每个避难场所位置处添加标注点。

2.4 避难防护手册设计与实现

避难防护手册采用JSP网页脚本,形成网页模式,简单易用,后续可方便从后台添加新的内容,随时更新。

2.5 12322呼叫设计与实现

手机端APP实现了打电话求救与咨询的功能,一键呼叫12322地震服务热线,主要代码如下:

开放打电话权限:

Button btn_call=(Button)findViewById(R.id.btn_call);

btn_call.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

//TODO Auto-generated method tub

//用intent启动拨打电话

Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"

+number));//number是传入的电话号码

startActivity(intent);

}

});

2.6 服务器端

手机端android应用启动内嵌浏览器组件加载web程序主页面从而实现数据的展现,前后台显示内容相同。

2.7 位置信息存储

搭建Mysql数据库服务环境,创建位置数据表将避难场所位置信息保存在服务器端,通过SQL命令创建数据库PLACE_T表如表1所示,主要存储应急避难场所的位置信息。

3 结论

通过本软件的开发与测试,本软件能作为公共服务产品,能帮助天津市民获取专业的防震与自救知识,便于天津市民速查及定位应急避难场所信息,能随时拨打12322防震减灾公益服务热线或通过邮箱进行求救、咨询、上报灾情等功能。

参考文献

[1] 赵士达,张楠,杨爽.基于云计算和Android的地震应急信息获取系统[J].计算机应用,2013(3):298-300.

[2] 郭宏志.Android应用开发详解[M].北京:电子工业出版社,2010.

[3] 百度開发者中心.云推送帮助文档[EB/OL][2013-08-23].http://developer.baidu.com/wiki/index.php?title=docs/cplat/push.

猜你喜欢
防震安卓邮箱
iPhone不卡的秘密曝光:安卓也能享受
防震演练
单导线防震锤复位装置方案设计
文物表情包
没问题邮箱
家庭防震
首尔七成房子不防震
一种基于安卓系统的手机侧抓包分析方法
关于停止使用dianxunjishu@china.com邮箱的通知
邮箱变更