• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps Android Network Service Discovery

Wuffle

Lurker
I am using androids built in Network Service Discovery to find device B from device A however it doesn't discover the service from A but finds everything else printers etc.

The Register service triggers the call back informing me the service was registered on A but i still cant find it on Device B.

Code:
public void registerService(int port) {
    tearDown();
    NsdServiceInfo serviceInfo  = new NsdServiceInfo();
    serviceInfo.setPort(port);
    serviceInfo.setServiceName(mServiceName);
    serviceInfo.setServiceType(SERVICE_TYPE);
    initializeRegistrationListener();
    manager.registerService(
            serviceInfo, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener);

}

@Override
public void onServiceRegistered(NsdServiceInfo NsdServiceInfo) {
    mServiceName = NsdServiceInfo.getServiceName();
    Log.d("Quiz", "Regsistered name " + NsdServiceInfo.getServiceName());
    Log.d("Quiz", "Regsistered port " + String.valueOf(NsdServiceInfo.getPort()));
    Log.d("Quiz", "Service Type " + NsdServiceInfo.getServiceType());
}


public void discoverServices() {
    stopDiscovery();  // Cancel any existing discovery request
    initializeDiscoveryListener();
    manager.discoverServices(
            SERVICE_TYPE, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener);
}

@Override
public void onServiceFound(NsdServiceInfo service) {
    Log.d("Quiz", "Services " +service.getServiceName());
    Log.d("Quiz", "Port " +String.valueOf(service.getPort()));
    Log.d("Quiz", "Service Type " + service.getServiceType());
    boolean found=false;
    if (service.getServiceType().equals(SERVICE_TYPE)) {
        if(servers.size()==0){
            servers.add(service.getServiceName());
          //  Log.d("Quiz", "Services Added");
        }
        for(int i=0;i<servers.size();i++){
            if(servers.get(i).equals(service.getServiceName()))
            {
                found=true;
            }
        }
    }
    if(found==false) {
        servers.add(service.getServiceName());
      //  Log.d("Quiz", "Services Added");
    }
}
I am adding the services found to a list from which i update a list view for those wondering what the extra code is for.

Anyone have any ideas as to why i cant find the service?

Thanks in advance.
 
Back
Top Bottom