Android 如何自动查找组所有者设备

Android 如何自动查找组所有者设备,android,wifi-direct,Android,Wifi Direct,我正在开发一个android应用程序,其中我需要使用WiFi Direct将多个设备相互连接。我已经完成了多个连接,因为我知道通过一个组所有者设备连接设备就像所有客户端设备都向一个特定设备发送请求一样。但我是手动操作的,因为如果所有客户端设备都单击一个特定设备的名称,则可以进行多个连接。但现在我需要以编程方式这样做一台设备自动成为组所有者,所有其他设备应自动向该特定设备发送连接请求。请帮助我解决此问题。我从过去几天一直处于此状态。提前感谢您的帮助 确切的逻辑/问题是什么 它必须完全自动化吗?或者

我正在开发一个android应用程序,其中我需要使用WiFi Direct将多个设备相互连接。我已经完成了多个连接,因为我知道通过一个组所有者设备连接设备就像所有客户端设备都向一个特定设备发送请求一样。但我是手动操作的,因为如果所有客户端设备都单击一个特定设备的名称,则可以进行多个连接。但现在我需要以编程方式这样做一台设备自动成为组所有者,所有其他设备应自动向该特定设备发送连接请求。请帮助我解决此问题。我从过去几天一直处于此状态。提前感谢您的帮助

确切的逻辑/问题是什么

它必须完全自动化吗?或者可以手动选择组所有者

如果所有设备同时启动连接,那么您必须进行手动选择,或者让设备协商如何选择组所有者。选择案例您将非常容易:

组所有者使用createGroup为连接创建组 Group owner添加本地服务,启动对等点发现并使其正常运行我的研究表明,如果没有活动连接或对等点发现,设备本地服务对于其他设备是不可见的 客户端,只需进行对等和服务发现并进行连接 如果设备可能在不同的时间出现在同一个地方,那么全自动的逻辑当然很简单

首先,所有设备同时发布和搜索设备 在第一个连接中,一个设备设置为组所有者,另一个设备设置为客户端 这两种设备都可以阻止对等和服务发现 客户端设备停止宣传该服务,从而使组所有者只能看到出现在附近的任何设备的服务,因此他们将连接到该服务。 无论如何,我会有一个小的示例项目,它可能会在以下方面帮助你:,无论如何,使用WiFi Direct,你需要手动允许连接,你会尝试进行配对,尽管我不得不承认,从本周周二开始,我不太确定它是否真的能这样工作。当我有时间验证我是否真的知道它的行为时,我需要做一些额外的测试

然后,如果您不想让用户手动接受对话框,我将为您提供两个选项。您可以使用中使用的不安全蓝牙连接,也可以使用WiFi直接接入点进行连接


请注意,使用接入点连接将切断任何其他WiFi连接。我也有它的例子,实际上我在写这个回复时上传了它,你可以从中找到它。请注意,这只是我的第一个测试版本,我可能会做更多的工作来改进它。

谢谢你的回答。我还有一个与此主题相关的问题。让我们假设3台设备同时启动对等发现。每个设备都会找到其他2台设备。现在它们应该自动相互连接。你能告诉我这个连接过程将如何工作。如何工作每个设备在协商过程中都会有行为。实际上,我想知道协商过程是什么,以及我将如何以编程方式进行协商。这将是一个很大的帮助。基本上,连接过程可能会失败,因此您应该构建逻辑,重新启动搜索和连接过程。我还在服务发现阶段添加了额外的随机时间,这意味着在一次连接尝试失败之后,连接尝试不应该完全在同一时间进行,从而使他们有更好的成功机会。