張紅燕,石曉慧
(賀州學院,廣西賀州,542899)
在日常生活中,意外事故時有發生,人們的安全意識也逐漸提高,遇到突發情況時能否及時得到救助成為保證其人身安全的關鍵,基于智能機的求救服務是一項以安全防范為本的新需求。與各個領域的專業設備相比,我們在日常生活中需要的是更為便攜、操作簡單的人身安全防范工具,因此開發基于Android的安全行程APP 有著廣泛的應用前景。
安心行程APP 在獲得硬件設備支持的基礎上,將圍繞以下兩個方面來設計:首先要確保APP的處理能力能正常使用軟件的基本功能,且具備良好的性能;其次要從使用者使用需求的角度出發,努力提高系統的可靠性、實用性及安全性等。軟件設計需要滿足以下四個方面:
(1)系統基本功能的實現;
(2)沖突事件處理能力的提高;
(3)系統可擴展性能的保障;
(4)UI 界面的簡潔和便于操作。
安心行程APP 主要包括日程提醒功能模塊和一鍵求救功能模塊,兩個模塊分別實現不同的功能,功能模塊圖如圖1 所示。

圖1 功能模塊圖
安心行程APP 最基本的一項功能模塊是日程提醒功能模塊,這一模塊的功能實現了日程管理的基本要求,囊括了對日程的增加、刪除、修改功能。此模塊功能的實現與其他日程管理類軟件相似,但安心行程APP 區別于普通日程管理軟件的地方在于,當用戶出現無法使用手機的緊急情況時,日程提醒彈出兩分鐘內沒有得到用戶確認會自動啟用一鍵求救功能模塊。
一鍵求救功能模塊的核心是及時發出求救信息,求救信息將包含求救內容和用戶當前位置坐標經緯度的信息以短信的形式發送給預先設定好的緊急聯系人。手機定位平臺及手機信息發送平臺這兩個部分是一鍵求救功能模塊關鍵內容。
用戶出現突發情況時地理位置的經緯度通過手機定位平臺獲取,經處理后的位置信息將以不同的方式保存到手機上,作為遇險信息的內容或載體。隨著社會的進步和科學技術的發展,智能手機的定位技術突飛猛進,得到了在生活、科學、醫藥等領域得到了廣泛的應用。現階段,手機上使用的定位技術主要有三種:GPS 定位技術、基站定位技術和a-gnss 輔助衛星定位技術。安卓平臺在在定位方面形成了較為完備的系統架構,各種硬件可以方便地在此架構中進行集成,因此開發基于定位技術的位置應用變得不再困難。
根據綁定的多個發送對象這一手段,手機信息發送平臺可以實現點對點群發信息模式,并將救援短信發送給應急聯系人,從而達到求救、求助的目的。信息發送平臺一直是信息時代手機不可或缺的一部分,由于Android 平臺優異的對外開放性,該平臺下第三方軟件的移植和使用會變得非常便捷,所以功能多樣的信息發送平臺定然會為緊急求救提供可靠的保障。
安心行程APP的設計模式采用了主流的MVC 設計模式,MVC 模式創新地將UI 與業務邏輯分離,將代碼拆分為三個概念單元,解決控制邏輯、數據處理邏輯和界面交互耦合的問題。此模式下針對不同功能需求可進行代碼類的單獨修改,便于后期出現功能需求變動時類的維護與修改。在MVC的三個部件中,模型負責數據的加載和存儲,視圖負責頁面的展示,控制器負責邏輯控制。在 MVC 架構中,視圖產生事件后通知到控制器,然后控制器進行一系列的邏輯處理,然后通知模型更新數據,最后通知視圖更新數據結構接口,這是一個完整的MVC數據流。還有一點是,對于結構復雜的程序而言,MVC 模式對于程序帶來的簡化看起來更直觀且用戶體驗更優秀。通過分離自身系統的基本部分,MVC 模式也賦予了每個部分應有的基本功能。
用戶在安心行程APP 所創建任務進程及所保存的數據會包含在MVC 模式的架構中,并引入了對外進行數據信息共享的接口,使用 MVC 模式的好處有:結構清晰,職責劃分清晰,每個部分各司其職,降低了界面的交互耦合,有利于各個組件的重復利用。
安心行程APP 采用層次化結構設計,分為數據采集層、數據交互層、通信層及表示層。
數據采集層:主要獲取位置信息、站點信息、聯系方式等相關信息,緊急聯系人的聯系方式通過電話簿組件獲取,用戶的地理位置經緯度則通過位置組件獲得。
數據處理層:主要用于訪問用戶計劃日程信息、求救短信內容、緊急聯系人信息、地理位置坐標信息等數據訪問。
通信層:主要利用短信息服務組件進行給緊急聯系人發送求救短信的操作。
表示層:即UI 交互界面層,接受用戶增加、修改、刪除日程信息;允許用戶增加、修改、刪除緊急聯系人信息及求救短信內容。
安心行程APP 是在Windows XP 平臺下,采用Java語言作為編程語言開發的一款軟件。進入APP 后主頁面為日程頁面,如圖2 所示,該界面能進行日程的新建、編輯及刪除等操作。用戶遇到突發情況時點擊“一鍵求救”按鈕可以將事先編輯好的求救短信內容發送給設定好的緊急聯系人,求救短息發送內容如圖3 所示。通過點擊“設置”按鈕能進入設置頁面,設置界面能進行緊急聯系人及求救短信內容的編輯。軟件流程圖如圖4 所示。

圖2 日程界面圖

圖3 求救短信內容圖

圖4 軟件流程圖
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 機制向后臺信息發送組件發送整合好所有信息的求救短信。在收到求救信息后會,信息發送組件會開始一個新進程,并將求救短信發送到緊急聯系人手機上,成功發送求救信息后終止短信發送進程并釋放所有后臺。
該系統采用的是Android 10 版本的智能手機進行軟件調試,首先將Android Studio 寫好的軟件源碼編譯并打包生成apk 文件,之后在測試機中將apk 安裝好,就可以進行測試了。
在安卓手機上運行該軟件,系統首先進入日程頁面,點擊新建日程,輸入地點、出發和到達的日期及時間等信息確認軟件是否能正常、準時彈出日程提醒窗口。為了保障一鍵求救功能的正常輸入,要預先輸入緊急聯系人及求救短信內容,測試時將緊急聯系人設為本機號碼。第一次測試時,日程提醒功能能正常使用,但發現軟件進行日程提醒時只彈出彈窗,無震動提醒,一鍵求救功能及用戶無回應系統自動發送求救短信等功能皆可正常使用。
本軟件的設計方案的軟件開發平臺為用戶數量廣泛的Android 開發平臺,借助安卓平臺豐富的組件庫將時鐘功能、定位功能及信息發送功能有效的結合在一起,各個模塊間相互配合完成求救信息的采集與及時發送。
該APP 基于分層模型進行數據存儲,通過異步模式向緊急聯系人發送求救短信,求救短信內的地理位置經緯度由GPS 進行定位獲得,安心行程App 實現了日程管理及緊急求救功能,用戶在遇到突發情況時可通過點擊“一鍵求救”按鈕向緊急聯系人發送帶有當前坐標的求救短信,若APP在行程結束確認用戶情況時,用戶無法按時確認,此時也會向緊急聯系人發送包含經緯度的求救短信,以保證用戶出行安全。
由于時間及系統硬件條件的限制,本文中安心行程APP的設計方案還不夠完善,后續還可以在以下方面進行改進:
(1)本文在Android 平臺上提出一種安全行程APP設計方案,隨著通信硬件設備性能的不斷發展,求救信息的采集方式可以更為多樣化,如增加周圍環境圖片、語音甚至是視頻信息的收集,且對不同價值的信息分配不同的優先級,可以建立采集信息優先級的分級系統,出現突發情況遵循由高至低的優先級順序進行求救信息的發送,提高有效救援的效率。
(2)增加歷史行程軌跡查詢功能,便于用戶回溯過往行程及出現突發情況時及時進行救援。