2017-05-19 259 views
-1

我正在使用Android的兩個使用WiFi p2p的設備連接。我想知道在建立連接時是否有任何方式讓兩臺設備知道彼此的名稱。當設備開始連接請求時,很容易,因爲您從列表中選擇對等設備,以便看到名稱。問題是關注接收連接請求的設備!如何在Android中使用WifiP2P獲取您的PEER的設備名稱

我想它必須是可能的,因爲你第一次嘗試連接你看到一個彈出與對方的名稱接受連接。但是我不知道在編寫應用程序時可以找到這些信息。

我想它必須存儲在NetworkInfo(當你收到一個狀態的改變)或WifiP2pInfo(當連接信息可用時)。

回答

0

有requestConnectionInfo方法,通過這個,你可以獲取有關連接deivce的所有信息簡單地實現這種連接後,由像下面

wifiManager.requestConnectionInfo(wifichannel, new WifiP2pManager.ConnectionInfoListener() { 
     @Override 
     public void onConnectionInfoAvailable(WifiP2pInfo info) { 
     //by info you can get host address and isGroupowner or else information you to 
implement your code after this 
} 
+0

我已經有了這個功能,我說我需要的信息應該來自WifiP2pInfo,就像你在代碼中聲明的那樣。但我不知道WifiP2pInfo的哪個屬性會給我。 WifiP2pInfo的字段是groupFormed,groupOwnerAddress和isGroupOwner。所以沒有關於同行的信息。 – BlueMountain

+0

你想要的主機地址或自己的地址 –

+0

我想要對等名稱。但如果不能,地址就沒問題。 – BlueMountain

2

當您收到WIFI_P2P_CONNECTION_CHANGED_ACTION廣播,如果您是在API級別18或更高版本,意圖中還有一個額外的名爲EXTRA_WIFI_P2P_GROUP。

EXTRA_WIFI_P2P_GROUP

這會返回一個WifiP2pGroup上,您可以撥打getClientList()。這給你一個WifiP2pDevices的集合。一旦你有一個WifiP2pDevice,你可以獲得「deviceName」字段。

相關問題