1

我严重困惑...

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

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

从这里开始,组就建立起来了,需要做的就是用客户端设备填充组。

我不确定它是如何从这里工作的,但我在想客户端可以加入组,joinGroup或者客户端可以请求加入,在这种情况下 GroupOwnerjoinGroup用来加入。问题是,没有joinGroup方法。那么,peer 如何将自己添加到组中,或者 GroupOwner 如何将客户端添加到组中?

4

1 回答 1

3

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

当 时onPeersAvaiable,您将遍历's 并在每个设备上WifiP2pDevice调用该方法。isGroupOwner

对于获得的每个群主地址,客户端随后connect将向群主发送。

建立连接后,您将调用requestConnectionInfo.

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

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

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

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

于 2013-03-15T15:14:05.213 回答