首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么原因导致NsdManager.discoverServices()停止在特定设备上查找服务?

是什么原因导致NsdManager.discoverServices()停止在特定设备上查找服务?
EN

Stack Overflow用户
提问于 2021-01-11 21:47:41
回答 1查看 89关注 0票数 0

这是我的密码:

代码语言:javascript
复制
  private val nsdManager = (context.getSystemService(Context.NSD_SERVICE) as NsdManager)

  fun go() {
    val discoveryListener = object : NsdManager.DiscoveryListener { ... }

    nsdManager.discoverServices("_sonos._tcp.", NsdManager.PROTOCOL_DNS_SD, discoveryListener)
  }

这个代码已经运行了好几个月了,但是昨天它刚刚停止了Pixel 3 (Android 11,1月5日的安全补丁)的工作。discoveryListener.onDiscoverStarteddiscoveryListener.onDiscoveryStopped将按预期被召回。没有discoveryListener.onStartDiscoveryFailed失败。但是discoveryListener.onServiceFound再也没有回过电话了。在相同的wifi网络上,同样的代码在(Android10)上运行得很好。同样的代码在Pixel 3上运行良好(直到昨天)。

NsdManager是否对协同和线程或活动与应用程序上下文敏感?我想也许是我一直在用协同剂做的一些工作导致了这一切。但是现在即使是生产应用程序也不只是在这个设备上返回任何onServiceFound结果。

是否有可能NsdManager缓存结果并进入一个糟糕的状态?如果是的话,我如何重新设置这个状态?以下是我尝试过的一些事情:

  • uninstall/reinstall
  • clear应用程序storage
  • forget wifi网络和reconnect
  • wait 24小时
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-14 19:38:38

等得更久才解决这个问题。可能是48小时,也可能是24小时,同时没有呼叫discoverServices

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65674988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档