小编paz*_*azi的帖子

NsdManager发现在Android 9上不起作用

我已经尝试了很长时间,让NsdManager发现功能在Android 9上运行。它可以在此之前的任何Android版本上正常运行。

为了进行测试,我使用了这个简单的代码段,清单中有“ INTERNET”的权限。

var nsdManager = context.getSystemService(Context.NSD_SERVICE) as NsdManager

nsdManager.discoverServices("_https._tcp", NsdManager.PROTOCOL_DNS_SD, object: NsdManager.DiscoveryListener {
    override fun onDiscoveryStarted(serviceType: String?) {
        println("DEBUG: onDiscoveryStarted $serviceType") 
    }
    override fun onDiscoveryStopped(serviceType: String?) {
        println("DEBUG: onDiscoveryStopped $serviceType") 
    }
    override fun onServiceFound(serviceInfo: NsdServiceInfo?) {
        println("DEBUG: onServiceFound $serviceInfo") 
    }
    override fun onServiceLost(serviceInfo: NsdServiceInfo?) {
        println("DEBUG: onServiceLost $serviceInfo") 
    }
    override fun onStartDiscoveryFailed(serviceType: String?, errorCode: Int) {
        println("DEBUG: onStartDiscoveryFailed $serviceType $errorCode") 
    }
    override fun onStopDiscoveryFailed(serviceType: String?, errorCode: Int) {
        println("DEBUG: onStopDiscoveryFailed $serviceType $errorCode") 
    }
})
Run Code Online (Sandbox Code Playgroud)

当执行此代码时,我在日志中看不到任何调试或错误消息。

使用Wireshark,我可以看到广播的mDNS Standard查询“ _https._tcp.local”以及来自所有预期设备的所有相应响应。由于从未调用过函数“ …

android mdns bonjour nsdmanager android-9.0-pie

1
推荐指数
1
解决办法
586
查看次数

标签 统计

android ×1

android-9.0-pie ×1

bonjour ×1

mdns ×1

nsdmanager ×1