Wifi Direct技術簡介
Wi-Fi Direct標準是指允許無線網路中的裝置無需通過無線路由器即可相互串連。與 藍芽技術類似,這種標準允許無線裝置以點對點形式互連,不過在傳輸速度與傳輸距離方面 則比藍芽有大幅提升。
Wi-Fi Direct技術特點
移動性與便攜性:Wi-Fi Direct裝置能夠隨時隨地實現互相串連。由於不需要Wi-Fi 路由器或存取點,因此Wi-Fi裝置可以在任何地點實現串連。
即時可用性:使用者將得以利用帶回家的第一部Wi-Fi Direct認證裝置建立直接連接。 例如,一部新購買的Wi-Fi Direct筆記本可以與使用者已有的傳統Wi-Fi裝置建立直接連接。
易用性:Wi-Fi Direct裝置發現(Device Discovery )與服務發現(Service Discovery)功能協助使用者確定可用的裝置與服務,然後建立串連。例如,如果使用者想要打 印檔案,他們可以通過上述服務瞭解到哪個Wi-Fi網路擁有印表機。
簡單而安全的串連:Wi-Fi Direct裝置採用Wi-Fi Protected Setup簡化了在裝置 之間建立安全連線的過程。使用者可以按下任一裝置上的按鈕,也可以輸入數字 PIN 碼(即裝置顯 示的數字 PIN 碼),輕鬆建立安全連線。
Wi-Fi Direct 主要優點:傳輸速率高,相容原有裝置。
Wi-Fi Direct 主要缺點:耗電量高(較之藍芽)。
Android P2P源碼學習
①:WifiP2pSettings Wi Fi P2P設定
方法 |
解釋 |
mReceiver |
處理接收到的各種Action方法: WIFI_P2P_PEERS_CHANGED_ACTION:調用requestPeers; WIFI_P2P_CONNECTION_CHANGED_ACTION:獲得NetworkInfo,判斷是否為串連狀態; WIFI_P2P_THIS_DEVICE_CHANGED_ACTION:調用updateDevicePref |
onCreate |
建立時調用 獲得系統服務WifiP2pManager和 WifiP2pManager.Channel; mConnectListener/mDisconnectListener 為 wifiP2pDialog 設定 Listener; setHasOptionsMenu(true)設定作業菜單 |
onResume() |
註冊 mReceiver; discoverPeers()探索附近裝置 |
onPause() |
登出 mReceiver; |
onOptionsItemSelected |
menu事件響應: MENU_ID_SEARCH:discoverPeers()探索附近裝置; MENU_ID_CREATE_GROUP:createGroup()建立群組; MENU_ID_REMOVE_GROUP:removeGroup()移除群組; MENU_ID_ADVANCED: 未處理; |
onPreferenceTreeClick |
點擊一個裝置,根據裝置狀態彈出相關對話方塊 |
updateDevicePref |
更新裝置屬性 首先設定device的配置資訊,然後調用 onPeersAvailable()方法更新UI |
onPeersAvailable |
更新UI |
②
WifiP2pDialog方法 |
解釋 |
getConfig() |
獲得P2P配置資訊,獲得device地址和 wps |
onCreate |
建立時候調用,設定device的address和name等資訊。 |
③
WifiP2pEnabler
方法 |
理解 |
mReceiver |
處理接收到的各種Action方法: WIFI_P2P_STATE_CHANGED_ACTION:調用方法 handleP2pStateChanged()進行處理 |
handleP2pStateChanged |
根據狀態設定checkbox的屬性值 |
onPreferenceChange |
根據checkbox的屬性變化,開啟/關閉wifi p2p |
resume/pause |
註冊/登出mReceiver,設定/取消checkbox的Listener |
④
WifiP2pPeer
方法 |
理解 |
onBindView |
設定基本配置資訊(名稱,地址,rssi和訊號量的圖片),調 用refresh()設定summary |
compareTo |
比較某device是否和本地的device相同 |
getLevel |
獲得訊號等級 |