我很困惑......
android文档非常好,但范围非常有限。
说我有一个叫createGroup(Channel,GroupInfoListener)
的设备。可用时,onGroupInfoAvailable(WifiP2pGroup)
被调用。此时,组中唯一的设备是所有者。 (因为调用create group的设备是组所有者)
从这里开始,该组已经建立,所需要做的就是用客户端设备填充组。
我不确定它是如何工作的,但我认为客户端可以加入组joinGroup
或客户端可以请求加入,在这种情况下GroupOwner使用{{1 }} 加入。问题是,没有joinGroup
方法。那么如何将对手添加到群组中,或者GroupOwner如何将群组添加到群组中呢?
答案 0 :(得分:3)
您使用一台设备createGroup
,然后将其他设备用于discoverPeers
和requestPeers
。
当onPeersAvaiable
时,您需要遍历WifiP2pDevice
并在每台设备上调用isGroupOwner
方法。
对于获得的每个群组所有者地址,客户端将connect
发送给群组所有者。
建立连接后,您可以拨打requestConnectionInfo
。
当onConnectionInfoAvailable
检查WifiP2pInfo
对象时,确保groupFormed
布尔值为真。
然后,使用groupOwnerAddress
InetAddress,您可以使用Java套接字在两者之间发送信号。
然后,您可以向群组所有者发送一个字符串,说“BLAH BLAH BLAH UNIQUE VALUE”。如果群组所有者返回“I UNDERSTAND”,那么您知道群组所有者属于您的应用。我是小组所有者返回任何其他内容,或者没有回复,那么您知道群组所有者无效。
如果您使用的是API 16+,则可以使用服务发现来检查设备是否正在运行您的应用,然后进行连接。