如何将设备添加到Android中的WifiP2pGroup

时间:2013-03-15 14:32:16

标签: android android-4.0-ice-cream-sandwich wifi-direct

我很困惑......

android文档非常好,但范围非常有限。

说我有一个叫createGroup(Channel,GroupInfoListener)的设备。可用时,onGroupInfoAvailable(WifiP2pGroup)被调用。此时,组中唯一的设备是所有者。 (因为调用create group的设备是组所有者)

从这里开始,该组已经建立,所需要做的就是用客户端设备填充组。

我不确定它是如何工作的,但我认为客户端可以加入组joinGroup或客户端可以请求加入,在这种情况下GroupOwner使用{{1 }} 加入。问题是,没有joinGroup方法。那么如何将对手添加到群组中,或者GroupOwner如何将群组添加到群组中呢?

1 个答案:

答案 0 :(得分:3)

您使用一台设备createGroup,然后将其他设备用于discoverPeersrequestPeers

onPeersAvaiable时,您需要遍历WifiP2pDevice并在每台设备上调用isGroupOwner方法。

对于获得的每个群组所有者地址,客户端将connect发送给群组所有者。

建立连接后,您可以拨打requestConnectionInfo

onConnectionInfoAvailable检查WifiP2pInfo对象时,确保groupFormed布尔值为真。

然后,使用groupOwnerAddress InetAddress,您可以使用Java套接字在两者之间发送信号。

然后,您可以向群组所有者发送一个字符串,说“BLAH BLAH BLAH UNIQUE VALUE”。如果群组所有者返回“I UNDERSTAND”,那么您知道群组所有者属于您的应用。我是小组所有者返回任何其他内容,或者没有回复,那么您知道群组所有者无效。

如果您使用的是API 16+,则可以使用服务发现来检查设备是否正在运行您的应用,然后进行连接。