?

移動設備應急通訊系統設計與開發

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對象,先發送一條普通的消息,然后進行文件的發送。進行文件發送的時候,需要新啟動一個線程來發送,因為文件的發送耗時會比較長,若不啟用多線程就會提示未響應。所以啟動一個新的線程來傳輸文件,并根據相應功能接口的返回值,設置文件傳輸是否成功。語音留言傳輸過程中的狀態會根據實體類中的屬性進行更新,成功與否會顯示在界面上??蛻舳嗽诮邮艿臅r候,需要在客戶端設置一個監聽,監聽文件是否傳輸過來。當文件被準許接收,就將接收的文件存放在相應的路徑。

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-),男,廣西欽州人,欽州學院講師,工程碩士,研究方向為教育技術學。

猜你喜歡
即時通訊欽州熱點
北部灣港欽州自動化集裝箱碼頭/獲獎證書
熱點
西部陸海新通道背景下加強欽州水上消防建設的思考
熱點
欽州坭興陶藝造型設計初探
結合熱點做演講
民事訴訟中即時通訊記錄的證據采用進路
“欽州大蠔”豪氣崛起
即時通訊軟件發展模型的實證研究
科學技術哲學視域下的即時通訊
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合