移动设备应急通讯系统设计与开发

2016-12-22 02:13孟陶卫平何锡茂钦州学院广西钦州535000钦州学院电子与信息工程学院广西钦州535000
大众科技 2016年10期
关键词:即时通讯钦州热点

罗 孟陶卫平何锡茂(.钦州学院,广西 钦州 535000;.钦州学院电子与信息工程学院,广西 钦州 535000)

移动设备应急通讯系统设计与开发

罗 孟1陶卫平2何锡茂2
(1.钦州学院,广西 钦州 535000;2.钦州学院电子与信息工程学院,广西 钦州 535000)

随着移动互联网时代正式到来,即时通讯软件成为了最受欢迎的软件之一,但是目前的即时通讯类软件必须通过互联网接入服务器,才能实现设备间的通讯。文章设计的移动设备应急通讯系统主要通过对Android、Wi-Fi Direct等相关技术的研究,利用无线网络的便捷性,快速搭建局部通讯网络,在没有通讯服务器的情况下为智能移动设备提供应急的临时通讯服务。

Android;局域网;即时通讯;Socket;Wi-Fi

1 前言

即时通讯软件作为移动互联网时代最具革命性应用软件,不仅带来了新的信息传播方式,也颠覆了传统的沟通方式。但是目前的即时通讯类软件,无论是国外的Facebook还是国内的微博、微信,都必须通过互联网接入服务器才能实现设备间的通讯。因此设计开发一个无需网络服务器的应急通讯系统就变得尤为重要。移动设备应急通讯系统能够帮助用户在无互联网服务的情况下,自行创建Wi-Fi局域网实现文字、语音、图像等数据传输。本系统的意义在于当通讯网络中断(例如:遭遇地震、台风、泥石流等自然灾害),充分考虑到局域网的通信需求,手持智能移动终端设备通过局域网之间的语音、图片、文字通讯达到应急通信的目的。本系统基于 Android平台开发,在实现目标功能的同时遵循Android用户界面设计规则,并有良好的拓展性与可维护性。

本系统选择Wi-Fi技术组建无线局域网。Wi-Fi是一种高频电信号以无线的方式将手机、平板电脑等智能移动手持终端连接起来的一种技术[8],具有组网成本低、组网简单方便等显著优点,能够满足智能移动手持终端间临时应急通讯的需求。

2 系统设计

2.1 功能分析

(1)免注册使用功能。软件定位是作为一个应急通讯系统,完全不需要繁琐的注册,首次登陆仅需填写姓名等最基本信息即可使用。(2)免添加联系人功能。无需繁琐的验证添加联系人过程,只要有两个或多个用户连接到同一 Wi-Fi网络,立即在列表中显示对方信息。(3)文字、语音通讯功能。内容实时显示在对话窗口。(4)提供新消息“声音”、“震动”提醒开关。(5)查看对方账号信息。查看在线用户IP地址、设备型号等信息。(6)图像发送功能。浏览本地图像或调用相机进行拍照保存发送。

2.2 欢迎与登陆界面

由于本软件系统无需注册,本页面只需要提供一个登陆入口即可,考虑到目前大尺寸屏幕手机单手操作的灵活性,将登陆按钮放在屏幕底部。点击登陆将跳转到登陆界面。

用户通过点击欢迎界面的登陆按钮将来到登陆设置页面,用户只需填写昵称等最基本登陆资料,点击下一步,系统做登录资料完整性验证,不完整则无法登陆,并弹出提示对话框,完整则记录用户输入的信息并跳转到Wi-Fi连接页面。

2.3 Wi-Fi连接与登陆

监测系统是否连接Wi-Fi并定时扫描Wi-Fi热点在列表中显示。如图 1所示用户点击下一步后执行登陆并将设备如IMEI作为用户ID写入SD卡。

图1 Wi-Fi连接登陆

2.4 语音采集与播放

通过调用Android系统提供的MediaRecord和MediaPlayer可以完成录音和音频播放。

语音数据的发送采用UDP协议。通过DatagramPacker类中的setData()方法对数据包设置,然后调用send()方法将数据包发送给对方。

接收数据主要是在广播的通知下,对已经组网的移动终端发送出的语音数据做出相应的回应,接到广播通知后,就会启动接收数据的线程,在此线程的控制下来完成数据接收[10]。同样分别构造DatagramSocket()和DatagramPacket()对象,DatagramPacket()主要是对接收的语音数据的长度进行设置,目的是为了更好的接收数据包,降低数据包的丢失率。

3 系统实现

3.1 欢迎与登陆界面的实现

3.1.1 欢迎界面的实现在res.layout目录下新建Layout属性的Android xml文件,

定义一个Button,并为其指定id,然后新建WelcomeActivity Java类,通过findViewById与刚才定义Button按钮简历连接,

然后通过setOnClickListener()与onClick()方法监听Button按钮点击动作并跳转至登陆界面。

3.1.2 登陆界面的实现

在res.layout下创建Layout布局文件,然后在LoginActivity Java类做登录资料完整性验证,不完整则无法登陆,完整则记录输入的信息。

3.2 附近Wi-Fi热点扫描与连接

Wi-Fi热点的首先进行控件初始化设置,通过getLocalHostName()获取热点id呈现到布局页面,并设置定时刷新WiFi列表信息,相关代码如下:

/** 初始化控件设置 **/

protected void initAction() {

if (!WifiUtils.isWifiConnect()

&& !WifiUtils.isWifiApEnabled()) { // 无开启热点无连接WIFI

WifiUtils.OpenWifi();

}

if (WifiUtils.isWifiConnect()) { // Wifi 已连接

mTvStatusInfo.setText(getString(R.string.wifiap_text_wifi_c onnected)

+ WifiUtils.getSSID());

}

/获取Wifi 热点名 * <p>* BuildBRAND 系统定制商 ; BuildMODEL 版本* </p>

* @return 返回 定制商+版本 (String类型),用于创建热点。

*/

public String getLocalHostName() {

String str1 = Build.BRAND;

String str2 = TextUtils.getRandomNumStr(3);

return str1 + "_" + str2;

}

public String getPhoneModel() { String str1 = Build.BRAND; String str2 = Build.MODEL; str2 = str1 + "_" + str2;

return str2; }

3.3 语音通讯功能的实现

该功能的实现过程主要是用户首先进行音频录制的采集,然后发给目标客户,目标客户收到音频后点击消息框对音频播放。对录音按钮定义三个按键响应事件,分别是按下、松开、滑动。

当按键按下时,初始化语音界面,并开始并录制音频并采集;采集过程首先要对音频设备,音频格式,编码方式以及临时输出文件的路径进行设置,然后执行 prepare()方法,然后执行start()方法进行采集,并通过Dialog将音量大小显示在界面上。方法如下:

protected void showVoiceDialog(int flag) { if (mRecordDialog == null) { mRecordDialog = new Dialog(BaseMessageActivity. this, R.style.DialogStyle);

mRecordDialog.requestWindowFeature(Window.FEATURE _NO_TITLE);

mRecordDialog.getWindow().setFlags(WindowManager.La youtParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

mRecordDialog.setContentView(R.layout.record_dialog);

mIvRecVolume = (ImageView)

mRecordDialog. findViewById(R.id.record_dialog_img); mTvRecordDialogTxt = (TextView)

mRecordDialog. findViewById(R.id.record_dialog_txt);

}

switch (flag) {

case 1∶

mIvRecVolume.setImageResource(R.drawable.record_canc el);

mTvRecordDialogTxt.setText(getString(R.string.chat_dialo g_record_cancel_up));

break;

default∶

mIvRecVolume.setImageResource(R.drawable.record_anim ate_01);

mTvRecordDialogTxt.setText(getString(R.string.chat_dialo g_record_cancel_move));

break;

}

mTvRecordDialogTxt.setTextSize(14); mRecordDialog.show();

}

当松开按键时,采集的文件会被传输。通过message对象,先发送一条普通的消息,然后进行文件的发送。进行文件发送的时候,需要新启动一个线程来发送,因为文件的发送耗时会比较长,若不启用多线程就会提示未响应。所以启动一个新的线程来传输文件,并根据相应功能接口的返回值,设置文件传输是否成功。语音留言传输过程中的状态会根据实体类中的属性进行更新,成功与否会显示在界面上。客户端在接受的时候,需要在客户端设置一个监听,监听文件是否传输过来。当文件被准许接收,就将接收的文件存放在相应的路径。

4 系统测试

4.1 测试准备

选择测试设备。考虑经济、方便等因素,最终选择了目前热门5台Android智能手机进行测试,分别是:魅族PRO5、红米3、魅族、OPPO R7、乐视1S。

4.2 欢迎登陆功能测试

运行应用程序,通过欢迎界面按钮跳转到登陆界面,输入昵称、性别等基本信息,点击下一步,进入 Wi-Fi显示界面。

4.3 附近Wi-Fi热点刷新与连接测试

附近Wi-Fi热点刷新功能测试:通过增加热点进行测试,若界面显示该热点则证明刷新功能成功,若没有显示,则有两种可能结果:①附近不存在该热点;②刷新功能失败。

附近Wi-Fi热点连接功能测试:点击listView中任意Wi-Fi热点,弹出密码输入界面,输入密码,启动Wi-Fi连接服务。

Wi-Fi热点刷新与连接测试结果如表1所示。

表1 Wi-Fi热点刷新与连接测试

热点刷新测试功能失败原因及解决方案:通过代码检查发现 WifiUtils.isWifiApEnabled()方法中未进行 try.catch异常捕获导致刷新失败,在添加try.catch后刷新功能正常。

4.4 文本、图像、语音通讯功能测试

文本通讯功能、图像功能、语音通讯功能测试:启动聊天界面,给在线用户发送一段文本,通过对方是否能正常收到信息判断功能是否正常。

测试结果分析:

(1)点击发送按钮,若信息无法发送,则信息传输模块出现问题,若信息发送成功,对方却没有收到,则是传输过程中出现了丢包的情况。

(2)点击添加图片按钮,若出现无法浏览图片,有两种情况,第一是软件没有获取读读取文件的权限,第二是图像预览Activity加载失败。

表2 语音采集与播放测试表

4.5 传输范围测试

测试选在封闭的建筑和车流、人流适中的校道上进行。距离测试的目的主要是测试 Wi-Fi信号发射器的最大辐射范围和软件的稳定性。在建筑物内,设备之间的搜索、连接,通讯能够正常工作,达到预期的设计目标;在校道上,测试最远的通信距离达到100m,当超过该距离时,连接断开。当距离超过90米时,设备之间能够进行搜索、连接,但是通讯会出现丢包现象。这主要是由于 Wi-Fi信号发射设备发射功率太小的原因,当处在微弱信号状态下会发生相应的丢包现象。

4.6 多用户测试

进行多用户测试的目的只要是测试系统最大能承载用户量以及用户量增大之后是否存在软件奔溃、数据传输丢包等情况。但是由于设备有限的原因,只找到5台设备进行测试,在多点入网的测试过程中,均能正常进行设备的搜索、连接,通讯。

5 总结

本次设计,主要是为了满足用户在无法使用互联网时,通过自身设备搭建简易无线局域网实现通讯的需求,最终设计并实现了用户需求。

[1] 单家凌,叶润发.基于Wi-Fi的Android通信系统[J].计算机系统应用,2014(5)∶69-72.

[2] 李艳.基于网络数据库下的即时通讯系统的设计与实现[D].石家庄∶河北科技大学,2010.

[3] 孟晓龙.Win7系统下Android开发平台的搭建[J].科协论坛(下半月),2011(8)∶72-73.

[4] 尹京花,王华军.基于 Android开发的数据存储[J].数字通信,2012(6)∶79-81.

[5] 孙震强,董智明.利用即时通信实现人机共享的方案研究[J].移动通信,2010(15)∶44-46.

[6] 杨群.基于WI-FI热点技术的即时P2P语音通信系统的研究与设计[D].武汉∶华中师范大学,2014.

[7] 孟贺.基于 Android的即时通讯系统的设计与实现[D].济南∶山东大学,2014.

[8] 丁倩.基于Android平台局域网即时通讯软件的设计与实现[D].西安∶西安电子科技大学,2013.

[9] 李鸥.Android手机平台的隐私信息防护系统的研究与实现[D].成都∶电子科技大学,2013.

[10] 罗伟.基于 Android平台的即时通讯系统的研究与实现[D].长沙∶湖南师范大学,2009.

[11] 饶润润.基于安卓操作系统的应用软件开发[D].西安∶西安电子科技大学,2014.

Design and development of emergency communication system for mobile equipment

Instant messaging software is the most popular mobile Internet era of software, but the current instant communications software has an inevitable disadvantage that must be the premise of the Internet access server in order to achieve communication between devices. Mobile emergency communications system design, mainly by Android, Wi-Fi Direct technology related research, the convenience of using a wireless network, quickly set up a local communication network, in the case of no communication with the server to provide emergency communications for the temporary smart mobile devices service.

Android; ocal area network; instant messaging; Socket; Wi-Fi

TN929.5

A

1008-1151(2016)10-0005-03

2016-09-11

2015年度广西高等教育本科教学改革工程项目(2015JGA371);2015年度钦州学院大学生创新创业训练计划项目(201511607169)。

罗孟(1980-),男,广西钦州人,钦州学院讲师,工程硕士,研究方向为教育技术学。

猜你喜欢
即时通讯钦州热点
北部湾港钦州自动化集装箱码头/获奖证书
热点
西部陆海新通道背景下加强钦州水上消防建设的思考
热点
钦州坭兴陶艺造型设计初探
结合热点做演讲
民事诉讼中即时通讯记录的证据采用进路
“钦州大蚝”豪气崛起
即时通讯软件发展模型的实证研究
科学技术哲学视域下的即时通讯