2013-03-15 32 views
1

我很困惑...如何將設備添加到Android的WifiP2pGroup中

Android文檔非常好,但範圍非常有限。

假設我有一個設備調用createGroup(Channel,GroupInfoListener)。當可用時,onGroupInfoAvailable(WifiP2pGroup)被調用。此時,該組中唯一的設備是所有者。 (因爲調用創建組的設備是組所有者)

從這裏開始設置組,並且所有需要發生的事情是用客戶端設備填充組。

我不確定它是如何從這裏工作的,但我想這是客戶端可以加入組,joinGroup或客戶端可以請求加入,在這種情況下GroupOwner使用joinGroup加入。問題是,沒有joinGroup方法。那麼如何讓一個同伴加入到團隊中,或者一個GroupOwner如何將一個客戶端添加到該團隊?

+0

http://stackoverflow.com/a/26242221/1815624 – CrandellWS 2016-02-09 03:08:59

回答

3

你會使用一個設備createGroup,然後使用其他設備discoverPeersrequestPeers

onPeersAvaiable,然後你會遍歷WifiP2pDevice的並在每個設備上調用isGroupOwner方法。

對於獲得的每個組所有者地址,客戶端然後將connect給組所有者。

連接建立後,您可以撥打requestConnectionInfo

onConnectionInfoAvailable您將檢查WifiP2pInfo對象以確保groupFormed布爾值爲true。

然後,使用groupOwnerAddress InetAddress,您可以使用Java套接字在兩者之間發送信號。

然後,您可以發送一個字符串給組主人說'BLAH BLAH BLAH UNIQUE VALUE'。如果團隊所有者返回「I UNDERSTAND」,那麼您知道團隊所有者屬於您的申請。如果團隊所有者返回其他任何內容,或者不回覆,那麼您知道該團隊的所有者無效。

如果您使用API​​ 16+,則可以使用服務發現來檢查設備是否正在運行您的應用程序,然後再進行連接。

相關問題