張紅燕,石曉慧
(賀州學(xué)院,廣西賀州,542899)
在日常生活中,意外事故時(shí)有發(fā)生,人們的安全意識也逐漸提高,遇到突發(fā)情況時(shí)能否及時(shí)得到救助成為保證其人身安全的關(guān)鍵,基于智能機(jī)的求救服務(wù)是一項(xiàng)以安全防范為本的新需求。與各個(gè)領(lǐng)域的專業(yè)設(shè)備相比,我們在日常生活中需要的是更為便攜、操作簡單的人身安全防范工具,因此開發(fā)基于Android的安全行程APP 有著廣泛的應(yīng)用前景。
安心行程APP 在獲得硬件設(shè)備支持的基礎(chǔ)上,將圍繞以下兩個(gè)方面來設(shè)計(jì):首先要確保APP的處理能力能正常使用軟件的基本功能,且具備良好的性能;其次要從使用者使用需求的角度出發(fā),努力提高系統(tǒng)的可靠性、實(shí)用性及安全性等。軟件設(shè)計(jì)需要滿足以下四個(gè)方面:
(1)系統(tǒng)基本功能的實(shí)現(xiàn);
(2)沖突事件處理能力的提高;
(3)系統(tǒng)可擴(kuò)展性能的保障;
(4)UI 界面的簡潔和便于操作。
安心行程APP 主要包括日程提醒功能模塊和一鍵求救功能模塊,兩個(gè)模塊分別實(shí)現(xiàn)不同的功能,功能模塊圖如圖1 所示。
圖1 功能模塊圖
安心行程APP 最基本的一項(xiàng)功能模塊是日程提醒功能模塊,這一模塊的功能實(shí)現(xiàn)了日程管理的基本要求,囊括了對日程的增加、刪除、修改功能。此模塊功能的實(shí)現(xiàn)與其他日程管理類軟件相似,但安心行程APP 區(qū)別于普通日程管理軟件的地方在于,當(dāng)用戶出現(xiàn)無法使用手機(jī)的緊急情況時(shí),日程提醒彈出兩分鐘內(nèi)沒有得到用戶確認(rèn)會自動啟用一鍵求救功能模塊。
一鍵求救功能模塊的核心是及時(shí)發(fā)出求救信息,求救信息將包含求救內(nèi)容和用戶當(dāng)前位置坐標(biāo)經(jīng)緯度的信息以短信的形式發(fā)送給預(yù)先設(shè)定好的緊急聯(lián)系人。手機(jī)定位平臺及手機(jī)信息發(fā)送平臺這兩個(gè)部分是一鍵求救功能模塊關(guān)鍵內(nèi)容。
用戶出現(xiàn)突發(fā)情況時(shí)地理位置的經(jīng)緯度通過手機(jī)定位平臺獲取,經(jīng)處理后的位置信息將以不同的方式保存到手機(jī)上,作為遇險(xiǎn)信息的內(nèi)容或載體。隨著社會的進(jìn)步和科學(xué)技術(shù)的發(fā)展,智能手機(jī)的定位技術(shù)突飛猛進(jìn),得到了在生活、科學(xué)、醫(yī)藥等領(lǐng)域得到了廣泛的應(yīng)用?,F(xiàn)階段,手機(jī)上使用的定位技術(shù)主要有三種:GPS 定位技術(shù)、基站定位技術(shù)和a-gnss 輔助衛(wèi)星定位技術(shù)。安卓平臺在在定位方面形成了較為完備的系統(tǒng)架構(gòu),各種硬件可以方便地在此架構(gòu)中進(jìn)行集成,因此開發(fā)基于定位技術(shù)的位置應(yīng)用變得不再困難。
根據(jù)綁定的多個(gè)發(fā)送對象這一手段,手機(jī)信息發(fā)送平臺可以實(shí)現(xiàn)點(diǎn)對點(diǎn)群發(fā)信息模式,并將救援短信發(fā)送給應(yīng)急聯(lián)系人,從而達(dá)到求救、求助的目的。信息發(fā)送平臺一直是信息時(shí)代手機(jī)不可或缺的一部分,由于Android 平臺優(yōu)異的對外開放性,該平臺下第三方軟件的移植和使用會變得非常便捷,所以功能多樣的信息發(fā)送平臺定然會為緊急求救提供可靠的保障。
安心行程APP的設(shè)計(jì)模式采用了主流的MVC 設(shè)計(jì)模式,MVC 模式創(chuàng)新地將UI 與業(yè)務(wù)邏輯分離,將代碼拆分為三個(gè)概念單元,解決控制邏輯、數(shù)據(jù)處理邏輯和界面交互耦合的問題。此模式下針對不同功能需求可進(jìn)行代碼類的單獨(dú)修改,便于后期出現(xiàn)功能需求變動時(shí)類的維護(hù)與修改。在MVC的三個(gè)部件中,模型負(fù)責(zé)數(shù)據(jù)的加載和存儲,視圖負(fù)責(zé)頁面的展示,控制器負(fù)責(zé)邏輯控制。在 MVC 架構(gòu)中,視圖產(chǎn)生事件后通知到控制器,然后控制器進(jìn)行一系列的邏輯處理,然后通知模型更新數(shù)據(jù),最后通知視圖更新數(shù)據(jù)結(jié)構(gòu)接口,這是一個(gè)完整的MVC數(shù)據(jù)流。還有一點(diǎn)是,對于結(jié)構(gòu)復(fù)雜的程序而言,MVC 模式對于程序帶來的簡化看起來更直觀且用戶體驗(yàn)更優(yōu)秀。通過分離自身系統(tǒng)的基本部分,MVC 模式也賦予了每個(gè)部分應(yīng)有的基本功能。
用戶在安心行程APP 所創(chuàng)建任務(wù)進(jìn)程及所保存的數(shù)據(jù)會包含在MVC 模式的架構(gòu)中,并引入了對外進(jìn)行數(shù)據(jù)信息共享的接口,使用 MVC 模式的好處有:結(jié)構(gòu)清晰,職責(zé)劃分清晰,每個(gè)部分各司其職,降低了界面的交互耦合,有利于各個(gè)組件的重復(fù)利用。
安心行程APP 采用層次化結(jié)構(gòu)設(shè)計(jì),分為數(shù)據(jù)采集層、數(shù)據(jù)交互層、通信層及表示層。
數(shù)據(jù)采集層:主要獲取位置信息、站點(diǎn)信息、聯(lián)系方式等相關(guān)信息,緊急聯(lián)系人的聯(lián)系方式通過電話簿組件獲取,用戶的地理位置經(jīng)緯度則通過位置組件獲得。
數(shù)據(jù)處理層:主要用于訪問用戶計(jì)劃日程信息、求救短信內(nèi)容、緊急聯(lián)系人信息、地理位置坐標(biāo)信息等數(shù)據(jù)訪問。
通信層:主要利用短信息服務(wù)組件進(jìn)行給緊急聯(lián)系人發(fā)送求救短信的操作。
表示層:即UI 交互界面層,接受用戶增加、修改、刪除日程信息;允許用戶增加、修改、刪除緊急聯(lián)系人信息及求救短信內(nèi)容。
安心行程APP 是在Windows XP 平臺下,采用Java語言作為編程語言開發(fā)的一款軟件。進(jìn)入APP 后主頁面為日程頁面,如圖2 所示,該界面能進(jìn)行日程的新建、編輯及刪除等操作。用戶遇到突發(fā)情況時(shí)點(diǎn)擊“一鍵求救”按鈕可以將事先編輯好的求救短信內(nèi)容發(fā)送給設(shè)定好的緊急聯(lián)系人,求救短息發(fā)送內(nèi)容如圖3 所示。通過點(diǎn)擊“設(shè)置”按鈕能進(jìn)入設(shè)置頁面,設(shè)置界面能進(jìn)行緊急聯(lián)系人及求救短信內(nèi)容的編輯。軟件流程圖如圖4 所示。
圖2 日程界面圖
圖3 求救短信內(nèi)容圖
圖4 軟件流程圖
2.1.1 獲取定位
在Android 開發(fā)當(dāng)中,大部分擁有地理位置功能的應(yīng)用會頻繁使用到定位功能,絕大部分開發(fā)者都會采用百度地圖或高德地圖這兩個(gè)地圖平臺提供的sdk,開放API。但是在不需要提供預(yù)覽地圖與地圖界面并且只需要經(jīng)緯度之類并的應(yīng)用場景中,使用百度地圖,高德地圖提供的sdk 會造成資源浪費(fèi),因此為了縮小apk的體積,安心行程APP使用Location Manager 這個(gè)Android API 給我們提供的類就可以滿足用戶的需求了。
2.1.2 短信發(fā)送
為確保用戶遇到突發(fā)情況時(shí)能及時(shí)向預(yù)先設(shè)定的緊急聯(lián)系人發(fā)送短信進(jìn)行求救,組件間采用異步模式。信息采集組件使用Activity 形式,信息發(fā)送組件使用Service 形式[1]。Android 有許多專門應(yīng)用于通信服務(wù)的類,SMS 類就是Android 提供的一種存儲與轉(zhuǎn)發(fā)服務(wù)[2]。首先需要獲得調(diào)起系統(tǒng)發(fā)送短息頁面的權(quán)限,接著通過調(diào)用SmsManager.getDefault() 獲取短信管理器功能。然后將緊急聯(lián)系人、短信內(nèi)容、求救者位置經(jīng)緯度等求救信息從本地文件中提取,并通過 BroadcastReceiver 機(jī)制向后臺信息發(fā)送組件發(fā)送整合好所有信息的求救短信。在收到求救信息后會,信息發(fā)送組件會開始一個(gè)新進(jìn)程,并將求救短信發(fā)送到緊急聯(lián)系人手機(jī)上,成功發(fā)送求救信息后終止短信發(fā)送進(jìn)程并釋放所有后臺。
該系統(tǒng)采用的是Android 10 版本的智能手機(jī)進(jìn)行軟件調(diào)試,首先將Android Studio 寫好的軟件源碼編譯并打包生成apk 文件,之后在測試機(jī)中將apk 安裝好,就可以進(jìn)行測試了。
在安卓手機(jī)上運(yùn)行該軟件,系統(tǒng)首先進(jìn)入日程頁面,點(diǎn)擊新建日程,輸入地點(diǎn)、出發(fā)和到達(dá)的日期及時(shí)間等信息確認(rèn)軟件是否能正常、準(zhǔn)時(shí)彈出日程提醒窗口。為了保障一鍵求救功能的正常輸入,要預(yù)先輸入緊急聯(lián)系人及求救短信內(nèi)容,測試時(shí)將緊急聯(lián)系人設(shè)為本機(jī)號碼。第一次測試時(shí),日程提醒功能能正常使用,但發(fā)現(xiàn)軟件進(jìn)行日程提醒時(shí)只彈出彈窗,無震動提醒,一鍵求救功能及用戶無回應(yīng)系統(tǒng)自動發(fā)送求救短信等功能皆可正常使用。
本軟件的設(shè)計(jì)方案的軟件開發(fā)平臺為用戶數(shù)量廣泛的Android 開發(fā)平臺,借助安卓平臺豐富的組件庫將時(shí)鐘功能、定位功能及信息發(fā)送功能有效的結(jié)合在一起,各個(gè)模塊間相互配合完成求救信息的采集與及時(shí)發(fā)送。
該APP 基于分層模型進(jìn)行數(shù)據(jù)存儲,通過異步模式向緊急聯(lián)系人發(fā)送求救短信,求救短信內(nèi)的地理位置經(jīng)緯度由GPS 進(jìn)行定位獲得,安心行程App 實(shí)現(xiàn)了日程管理及緊急求救功能,用戶在遇到突發(fā)情況時(shí)可通過點(diǎn)擊“一鍵求救”按鈕向緊急聯(lián)系人發(fā)送帶有當(dāng)前坐標(biāo)的求救短信,若APP在行程結(jié)束確認(rèn)用戶情況時(shí),用戶無法按時(shí)確認(rèn),此時(shí)也會向緊急聯(lián)系人發(fā)送包含經(jīng)緯度的求救短信,以保證用戶出行安全。
由于時(shí)間及系統(tǒng)硬件條件的限制,本文中安心行程APP的設(shè)計(jì)方案還不夠完善,后續(xù)還可以在以下方面進(jìn)行改進(jìn):
(1)本文在Android 平臺上提出一種安全行程APP設(shè)計(jì)方案,隨著通信硬件設(shè)備性能的不斷發(fā)展,求救信息的采集方式可以更為多樣化,如增加周圍環(huán)境圖片、語音甚至是視頻信息的收集,且對不同價(jià)值的信息分配不同的優(yōu)先級,可以建立采集信息優(yōu)先級的分級系統(tǒng),出現(xiàn)突發(fā)情況遵循由高至低的優(yōu)先級順序進(jìn)行求救信息的發(fā)送,提高有效救援的效率。
(2)增加歷史行程軌跡查詢功能,便于用戶回溯過往行程及出現(xiàn)突發(fā)情況時(shí)及時(shí)進(jìn)行救援。