【发布时间】:2014-10-07 17:23:05
【问题描述】:
所以我有一个应用程序使用服务发现将多个设备连接到一个主机。我首先设置所有内容,然后调用 WifiP2pManager.discoverServices(..)。然后一个设备选择宣传该服务(有点像游戏大厅)。其他设备都觉得很好,可以连接没问题。
当一台设备已托管服务并尝试连接到已连接到其服务的设备时,就会出现问题(它形成了一个持久组并忽略了所有组所有者意图值)。 假设我们有一个托管服务的设备 A。另一个设备 B 连接到 A,A 是组所有者,并且在 Wifi Direct 设置菜单中形成了一个持久组。两人都使用完该应用程序并决定稍后再次使用它。现在 B 决定托管该服务。 A 尝试连接到 B,但最终成为组所有者,即使 B 是托管服务的人,因为之前的持久连接。 后来我将设备 B 的 GOI(组所有者意图)设置为 15(主机),将设备 A 的 GOI 设置为 0,它完全忽略了它。编辑 [其实我只是设置设备 A 的 GOI,因为只有一个设备调用连接。]
我的问题是:有没有办法以编程方式从设置菜单中删除旧组?或者您对如何解决我的问题有其他建议?
我尝试使用 WifiP2pManager.createGroup(..) 创建一个新组,这暂时解决了组所有者问题,但是在启动服务并使用同一设备连接两次后,它连接到旧的、记住的组,并且似乎没有连接到程序。这可以通过不允许持久组来轻松解决,但似乎还不能作为一个选项使用。
【问题讨论】:
标签: android wifi-direct