我在本地网络上的 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 提供的(不是非常详尽的)之外,似乎很少有文档,因此,如果其他人深入研究此内容并可以提供更多指导,将不胜感激!