3

我在本地网络上的 MacBook Pro 上运行了 Bonjour 服务,我试图在 Android 设备(Galaxy Nexus)上的客户端应用程序中检测到该服务。

我已经通过两种方式实现了 Bonjour 服务发现。第一种是通过 Android 的 NSD 包,这里有详细介绍。我已经实现了他们在“发现网络上的服务”部分中建议的代码。它可以很好地发现我的服务,但是没有 API 调用来访问该服务的 txt 记录,我需要访问这些记录,因此我可以构建 URL 以访问该服务,这使得这种方法成为一种交易破坏者,直到我可以访问它。

促使我尝试在“发现附近的服务”部分中详细介绍的 Bonjour 服务发现的另一种方法,因为它们有一个用于 txt 记录发现的 API。我知道服务发现开始了,因为它没有记录任何错误,但是这种方法没有为我发现任何 Bonjour 服务,甚至不是 Apple 默认在其 MacBook 上拥有的所有服务。它的实施与他们网站上的完全一样,那么我需要做些什么来完成这项工作?除了 Bonjour 服务之外,我的 MacBook 是否需要运行其他东西才能被识别为 WiFi-Direct 设备?或者这只是不可能使用具有此设置的Android API,我是否应该寻找JmDNS之类的库来做我需要的事情,直到Android的API更加完整/记录?

对于这些新的 Nsd API,除了 Android 提供的(不是非常详尽的)之外,似乎很少有文档,因此,如果其他人深入研究此内容并可以提供更多指导,将不胜感激!

4

1 回答 1

0

这可能取决于 MacBook Pro 提供的服务实现。

“我在本地网络上的 MacBook Pro 上运行了 Bonjour 服务” - 如果您将 NSD 与 WI-FI direct 一起使用,我相信它不会尝试查找在您的本地网络中运行的服务,而是会查找在附近运行的服务设备通过 WI-FI 直连且无连接。

“但是,使用 Wi-Fi Direct 服务发现可以让您直接发现附近设备的服务,而无需连接到网络”。

我认为这意味着您的 MacBook Pro 可能需要单独的实现来帮助 WI-FI 直接通信,以便它可以响应不在本地网络中的发现请求。抱歉,我现在不能说更多。

于 2013-07-29T07:59:10.840 回答