【问题标题】:How to add a device to a WifiP2pGroup in Android如何在 Android 中将设备添加到 WifiP2pGroup
【发布时间】:2013-03-15 14:32:15
【问题描述】:
我真的很困惑......
android 文档非常好,但范围非常有限。
假设我有一个设备调用createGroup(Channel,GroupInfoListener)。当可用时,onGroupInfoAvailable(WifiP2pGroup) 会被调用。此时,组中唯一的设备是所有者。 (因为调用create group的设备是group owner)
从这里开始,组就设置好了,需要做的就是用客户端设备填充组。
我不确定它是如何从这里开始工作的,但我在想客户端可以使用joinGroup 加入群组,或者客户端可以请求加入,在这种情况下,GroupOwner 使用joinGroup 加入.问题是,没有joinGroup 方法。那么,peer 到底是如何将自己添加到组中的,或者 GroupOwner 是如何将客户端添加到组中的呢?
【问题讨论】:
标签:
android
android-4.0-ice-cream-sandwich
wifi-direct
【解决方案1】:
您可以使用一台设备来createGroup,然后使用其他设备来discoverPeers 和requestPeers。
当onPeersAvaiable 时,您将遍历WifiP2pDevice 并在每个设备上调用isGroupOwner 方法。
对于获得的每个群主地址,客户端将connect 给群主。
一旦建立连接,您将致电requestConnectionInfo。
当onConnectionInfoAvailable 时,您将检查WifiP2pInfo 对象以确保groupFormed 布尔值为真。
然后,使用groupOwnerAddressInetAddress,您可以使用Java Sockets在两者之间发送信号。
然后您可以向组所有者发送一个字符串,说“BLAH BLAH BLAH UNIQUE VALUE”。如果组所有者返回“I UNDERSTAND”,那么您知道组所有者属于您的应用程序。如果群主返回任何内容,或者没有回复,那么你就知道群主无效了。
如果您使用 API 16+,您可以使用服务发现来检查设备是否正在运行您的应用,然后连接。