Bonjour服务发现未完成Android的API。我错过了什么,或者我应该只使用JmDNS?

时间:2013-07-17 18:21:02

标签: android bonjour wifi-direct

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

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

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

除了Android为这些新的Nsd API提供的内容之外,似乎只有很少的文档,所以如果其他人已经深入研究并提供更多指导,那将非常感谢!

1 个答案:

答案 0 :(得分:0)

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

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

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

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