Tuesday, 6 August 2013

Host is null in NsdServiceInfo of NsdManager.DiscoveryListener.onServiceFound

Host is null in NsdServiceInfo of NsdManager.DiscoveryListener.onServiceFound

I'm trying to get the mHost of the NsdServiceInfo passed as parameter to
NsdManager.DiscoveryListener.onServiceFound() but it's null. I have two
android devices where device 1 is the server and device 2 is the client.
This is how I register the server in the device 1
public void registerService(int port, InetAddress myIp) {
NsdServiceInfo serviceInfo = new NsdServiceInfo();
serviceInfo.setPort(port);
serviceInfo.setServiceName(this.serviceName);
serviceInfo.setServiceType(SERVICE_TYPE);
serviceInfo.setHost(myIp);
this.nsdManager.registerService(
serviceInfo, NsdManager.PROTOCOL_DNS_SD, registrationListener);
}
And this is how I initialize the DiscoveryListener
public void initializeDiscoveryListener() {
discoveryListener = new NsdManager.DiscoveryListener() {
@Override
public void onServiceFound(NsdServiceInfo service) {
Log.d(TAG, "Service discovery success" + service);
if (!service.getServiceType().equals(SERVICE_TYPE)) {
Log.d(TAG, "Unknown Service Type: " +
service.getServiceType());
} else if (service.getHost() == myIp) {
Log.d(TAG, "Same machine: " + service.getHost());
} else if (service.getServiceName().contains(serviceName)){
nsdManager.resolveService(service, resolveListener);
}
}
...
}
}
But service.getHost() returns null.
Any suggestion?

No comments:

Post a Comment