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