我目前正在编写一个Android应用程序,它应该使用JmDNS跟踪同一个wifi网络中的其他设备。 发现过程正常,但我不知道如何跟踪其他设备,特别是注意到他们的删除。
如上所述 JmDNS device removal detection我似乎必须自己实现这个回调,但我不知道如何做到这一点。似乎JmDNS Api没有提供任何方法来自己发布服务消息。
到目前为止我的想法:
有没有人知道另一种解决此问题的方法,或者可以告诉我如何触发serviceRemoved()
回调?
答案 0 :(得分:0)
所以这里有一些我在试验时想到的东西:
DNS缓存设置为一小时,这意味着只要该计数器没有完成,侦听器就不会删除服务。
我做的错误是在wifi关闭后取消注册我的服务。服务发送它们不再可用的广播消息。如果wifi连接关闭,则无法发送此消息。
所以不要在wifi连接后调用JmDNS.unregisterAllServices(),而是在它可用时调用它。这导致在侦听器中触发onServiceRemoved()回调函数