1. 程式人生 > >Android -wifi 直連(wifi direct )

Android -wifi 直連(wifi direct )

現在,Android的支援Wi -Fi的直接點對點點對點(P2P)Android系統的供電裝置和其他型別的裝置,沒有一個熱點或網際網路連線之間的連線。Android框架提供了一套Wi - Fi的P2P的API,允許你去發現和連線到其他裝置時,每個裝置的Wi -Fi的直接支援,然後溝通跨越距離遠遠長於藍芽連線迅速​​連線。

android.net.wifi.p2p,一個新的軟體包,包含所有的API執行同行等連線與Wi - Fi。 你需要與主類是WifiP2pManager,您可以呼叫getSystemService(WIFI_P2P_SERVICE)收購。WifiP2pManager包括API,允許您:

1、您P2P連線的應用程式通過呼叫initialize

2、探索通過呼叫附近的裝置discoverPeers

開始通過呼叫P2P連線connect以及一些其他的介面和類是必要的,如:

WifiP2pManager.ActionListener介面,讓您能夠接收的操作時,如發現同行或連線到他們的成功或失敗的回撥。

WifiP2pManager.PeerListListener介面,您可以收到有關發現同行的資訊。 回撥提供了一個WifiP2pDeviceList,您可以從中檢索一個WifiP2pDevice範圍內的每個裝置物件和獲取資訊,如裝置的名稱,地址,裝置型別,裝置支援的WPS配置。

WifiP2pManager.GroupInfoListener介面,您可以收到一個P2P組資訊。 回撥提供了一個WifiP2pGroup物件,它提供了所有者,網路名稱和密碼的資訊,如組。

WifiP2pManager.ConnectionInfoListener介面,您可以得到當前連線的資訊。 回撥提供了一個WifiP2pInfo物件,它具有資訊,如一個組是否已經形成,誰是該組的所有者。

為了使用的Wi - Fi P2P的API,你的應用程式必須要求以下使用者許可權:

1、ACCESS_WIFI_STATE

2、CHANGE_WIFI_STATE

3、INTERNET (雖然你的應用程式不技術上連線到網際網路,溝通的Wi - Fi標準的Java套接字直接同行需要Internet許可權)。

Android系統還廣播了幾種不同的行動,在特定的Wi - Fi P2P事件:

1、WIFI_P2P_CONNECTION_CHANGED_ACTION :P2P連線狀態發生了變化。這與EXTRA_WIFI_P2P_INFOWifiP2pInfo與EXTRA_NETWORK_INFONetworkInfo物件的物件EXTRA_NETWORK_INFOEXTRA_NETWORK_INFOEXTRA_WIFI_P2P_INFO EXTRA_WIFI_P2P_INFO 。

2、WIFI_P2P_STATE_CHANGED_ACTION :P2P的狀態已經改變之間的啟用和禁用。 它攜帶EXTRA_WIFI_STATE要麼WIFI_P2P_STATE_DISABLED或WIFI_P2P_STATE_ENABLED

WIFI_P2P_PEERS_CHANGED_ACTION等裝置的列表已經改變。

3、WIFI_P2P_THIS_DEVICE_CHANGED_ACTION :該裝置的細節已經改變。

見的WifiP2pManager文件瞭解更多資訊。 也期待在Wi - Fi的直接演示示例應用程式。

Wi-Fi Direct與ad-hoc模式有哪些不同?
    Wi-Fi Direct將提供一個強大的發現功能,使其更易於使用。Wi-Fi Direct結合了Wi-Fi技術的若干重要創新,如更高的資料速率、企業管理能力、WMM? Quality of Service模式,以及點到點連線的電源管理協議。

兩者在安全性上有所不同,Wi-Fi Direct採用WPA2(Wi-Fi Protection Access Version 2)加密,在Windows ad-hoc網路下,最高安全支援為WEP。不過Windows 7亦支援WPA2