摘 要:Wi-Fi Direct技術是近年新興的近距離無線通信技術,該技術無需Wi-Fi熱點即可實現設備之間的互聯互通,在近距離無線通信技術中具有顯著的優勢和廣闊的應用前景。本文設計并實現了基于Wi-Fi Direct技術的文件共享系統應用,具有傳輸速率高、覆蓋距離大、便捷易用、功能設計完善以及拓展性強等特點,具有很強的應用價值。
關鍵詞:Wi-Fi Direct;Android;信息共享
1 概述
早期的信息共享,要么通過將設備接入局域網,要么通過第三方存儲介質,或使用紅外技術、藍牙技術、NFC[1]等近距離無線技術[2],然而這些技術要么設置步驟繁瑣、要么數據傳輸速率低,覆蓋面積小、要么需要路由器作為接入設備,不能滿足日益增長的用戶需求。Wi-Fi Direct技術是在Wi-Fi技術的基礎上推出的,具有傳統的Wi-Fi技術優勢,無需AP,即可端對端組網、共享信息。本文設計的基于Wi-Fi Direct信息共享系統利用該技術優勢,實現用戶組網快捷、無需AP設備直接彼此互聯、具有傳輸速率高、覆蓋距離大等優點。
2 系統設計
本應用是在Android系統[3]上實現的,應用的整體架構自上而下設計為上層應用層、中間信息處理層、下層傳輸層和底層硬件管理層。
上層應用層,設計為人機接口功能,為用戶操作的各項功能提供承托平臺,包含用戶管理模塊、消息管理模塊、通知管理模塊和文件管理模塊。該層以簡潔流暢的人機界面設計呈現給用戶,便于用戶快速調用所需功能,使用應用。
中間信息處理層,設計為信息處理功能,用于對傳輸信息進行諸如加密解密、CRC校驗、數據壓縮處理等功能。同時,該層還包含自定義的通信協議和網絡發現服務協議的封裝和解析還原功能。
下層傳輸層,設計為應用的信息傳輸功能,包含網絡發現服務模塊和傳輸管理等模塊。通過合理選擇TCP、UDP傳輸方案,將各種上層協議封裝好的數據信息傳輸小組內其他設備,同時對接收的數據信息通過觀察者模式告知上層應用框架,分發消息。
底層硬件管理層,設計為Wi-Fi Direct管理功能,用于向wpa_supplicant進程發送相應命令,調用Wi-Fi Direct的各項功能,監聽Wi-Fi Direct驅動通過wpa_supplicant發出的各種事件,再通過Android Intent廣播機制告知上層框架。
3 關鍵層次的實現
區別于基于其他技術的同類應用,基于Wi-Fi Direct文件共享系統最大的特點就是利用Wi-Fi Direct技術優勢,即建立連接方便快捷,無需AP,傳輸速率高、覆蓋面積廣等特點。因此,操作Android系統底層Wi-Fi Direct功能的底層硬件管理模塊是本系統的關鍵部分。
底層硬件管理層主要用于對本地Wi-Fi Direct硬件的調用和通信,是整個系統的核心也是上層部分功能實現的底層硬件基礎,用于加載、激活底層Wi-Fi Direct硬件驅動,按需求操作Wi-Fi Direct各項功能,以及接收底層Wi-Fi Direct驅動的傳出事件并通知上層應用執行相應處理。Android操作系統對Wi-Fi Direct功能的硬件驅動支持出現在Android 4.0及后續版本,由于Android系統為了維持API的穩定性以及對硬件訪問權限的控制[4],Wi-Fi Direct的激活和關閉方式不同于傳統的Wi-Fi操作,必須通過發送Action為Settings.ACTION_WIRELESS_SETTINGS的Intent,打開Wi-Fi設置界面啟動或關閉Wi-Fi Direct功能,對于系統的獨立性和便捷性、及用戶體驗都有極大的影響。為了能夠實現直接激活和關閉Wi-Fi Direct底層硬件功能,本層采用Java反射機制,直接解析Android應用程序框架層中的wifip2pManager類,訪問相應功能API,反射機制實現保護API調用代碼如下:
void enableWifiP2p() {
Helper.useMethod(helper.getManager(), \"enableP2p\",
new Class[] { Channel.class },
new Object[] { helper.getChannel() });
}
void disableWifiP2p() {
Helper.useMethod(helper.getManager(), \"disableP2p\",
new Class[] { Channel.class },
new Object[] { helper.getChannel() });
}
enableWifiP2p()函數用于激活Wi-Fi Direct功能,disableWifiP2p()函數用于關閉Wi-Fi Direct功能,通過這兩個函數,使本系統無需跳轉到設置界面即可啟動Wi-Fi Direct功能,提升了用戶體驗。
4 測試驗證
本系統性能基本都符合設計預期,同其他無線個域網技術相比,采用Wi-Fi Direct實現信息傳輸和共享,無論在應用便攜性和無需依賴無線熱點方面以及在傳輸距離、速率等各項性能上都遠遠超過當前主流的無線技術和方案,如藍牙、Wi-Fi等,足以可見Wi-Fi Direct技術的設計優勢和應用前景。
[參考文獻]
[1]桑亞樓.NFC技術及其應用.移動通信,2008(3):26~27.
[2]石明明,魯周迅.三種無線通信協議綜述.通信技術,2011,Vol44(07):72~73.
[3]胡偉.Android系統架構及其驅動研究.廣州廣播電視大學學報,2010,Vol10(04):97~98.
[4]金泰延,等.Android框架揭秘.北京:人民郵電出版社,2012.