在resolveService之后永远不会调用onServiceResolved或onResolveFailed

时间:2017-09-18 15:23:43

标签: java android

最近我正在研究Android应用程序上的bonjour服务。我遵循标准的Android NSDManager示例,可以成功找到导致进入函数NsdManager.DiscoveryListener.onServiceFound的服务。然后在调用resolveService后,没有任何反应。调用onServiceResolved和onResolveFailed都不会被调用。任何人都能给我一些建议,不管我是否遗漏了一些东西,或者我能做些什么来找到根本原因?

下面是我的代码:(为了简单起见,我只是粘贴一些主要逻辑)

NsdManager mNsdManager = (NsdManager)context.getSystemService(Context.NSD_SERVICE);
mNsdManager.discoverServices("_http._tcp.", NsdManager.PROTOCOL_DNS_SD, new NsdManager.DiscoveryListener() {
   public void onServiceFound(NsdServiceInfo service) {
      mNsdManager.resolveService(service, new NsdManager.ResolveListener({
          public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) {
            Log.d(TAG, "onResolveFailed " + serviceInfo + ", errorCode: " + errorCode);
        }

        @Override
        public void onServiceResolved(NsdServiceInfo serviceInfo) {
            InetAddress host = serviceInfo.getHost();
            int port = serviceInfo.getPort();
            Log.d(TAG, "onServiceResolved " + serviceInfo);
        }
      });
   }
});

感谢

0 个答案:

没有答案