当前位置: 首页 > 知识库问答 >
问题:

Bonjour服务发现未完成Android的API。我是遗漏了什么,还是应该只使用JmDNS?

束俊英
2023-03-14

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

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

这促使我尝试在“发现附近的服务”一节中详细介绍的其他Bonjour服务发现方法,因为它们有一个用于txt记录发现的API。我知道服务发现开始了,因为它不会记录任何错误,但这种方法不会为我发现任何Bonjour服务,即使是默认情况下苹果在MacBooks上的所有服务。它的实现与他们网站上的完全一样,所以我需要做什么才能使它工作?我的MacBook是否需要运行Bonjour服务之外的其他功能,以便被识别为WiFi Direct设备?或者,在这种设置下使用Android的API是不可能的,在Android的API更加完整/文档化之前,我是否应该寻找像JmDNS这样的库来完成我需要的工作?

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

共有1个答案

锺离德运
2023-03-14

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

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

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

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

 类似资料:
  • 从外观上看-似乎创建了一个对象的克隆。如果是这样,那么对于实现可克隆接口(只有不可变对象是新的,因为可变对象有引用复制)的关注,哪一个是最好的,为什么? 我昨天实现了克隆,然后意识到我必须为非字符串/首字母元素提供自己的修改。然后我被告知我现在正在使用的。这两个实现似乎都提供了类似的功能。 谢谢

  • 我正在重构我们的一些组件,因此我尝试合并记忆,因为一些组件可能会使用相同的值重新呈现(例如,热链接图像URL,除非它们相同)。 我有一个简单的组件: 然后是阿凡达笠美: 我还试着传递备忘录的第二个论点: 但是console.log仍然每次都显示出来。我显然遗漏了什么,或者不太明白这是怎么回事。这个组件是几个级别下来,但它通过在img如果它是每次可用的,所以我希望它知道,如果img是通过在以前的渲染

  • 问题内容: 我正在使用c / c 为osx和linux开发命令行界面可执行文件。该项目将链接到opencv。我应该使用libc 还是libstdc ++? 问题答案: 我会为每个操作系统使用本机库,即GNU / Linux上的libstdc 和Mac OS X上的libc 。 libc 在GNU / Linux上不是100%完整的,而libstdc 更完整时使用libc并没有真正的优势。另外,如果

  • 问题内容: 和CSS 和有什么不一样?我应该使用哪一个?为什么? 问题答案: 所有这些答案似乎都是不正确的。与直觉相反,在CSS 中不是pixel 。至少不是在简单的物理意义上。 从W3C,EM,PX,PT,CM,IN…阅读本文,了解如何为CSS发明一个“神奇的”单元。的含义因硬件和分辨率而异。(该文章是最新的,最新更新为2014-10。) 我自己的思考方式: px单位是CSS的魔术单位。它与当前

  • 问题内容: 我正在一个将Angular和Underscore都作为依赖项的项目。 当我需要创建对象的副本时,根据当时的心情,我可以使用或 在我看来,这些方法中的一种可能比另一种更快速/可靠/健壮。 假设已经包含两个库,那么这两个函数中的任何一个是否存在使另一个函数更好或更坏使用的已知问题? 问题答案: 关于您的问题: angular.copy和_.clone是不同的。这不是哪个更好的问题,而是关于

  • 问题内容: 我想从文本文件中读取每一行并将它们存储在ArrayList中(每一行是ArrayList中的一项)。 到目前为止,我知道BufferedInputStream写入缓冲区,并且仅在缓冲区为空时才进行另一次读取,这可以最大程度地减少或至少减少操作系统的操作量。 我正确吗-我说得通吗? 如果以上情况是在任何情况下,任何人都想使用DataInputStream。最后,我应该使用这两个中的哪一个