No registrando un servicio Zeroconf usando JMDNS
Pregunta
Estoy tratando de que mi aplicación Android registre un servicio a través de ZeroConf mientras la aplicación está activa, y luego no lo registra después de que la aplicación sale. En mi método Onresume tengo el siguiente código:
// register ourselves with zero conf
try {
JmDNS jmdns = JmDNS.create();
serviceInfo = ServiceInfo.create("_http._tcp.local.", "My App Service", SERVER_PORT, 0, 0, false, "path=/crazycatapp");
jmdns.registerService(serviceInfo);
} catch (Throwable t) {
Debug.e("Error registering service with zeroconf", t);
}
y luego posteriormente en mi método de idagalía:
if(serviceInfo != null) {
// unregister ourselves with zero conf
JmDNS jmdns = JmDNS.create();
jmdns.unregisterService(serviceInfo);
}
} catch (Throwable t) {
Debug.e("Error unregistering service with zeroconf", t);
}
He eliminado el código que hace habilitación de multidifusión, etc. El punto es que puedo registrar el servicio bien y posteriormente puedo verlo usando un navegador ZeroConf en otro dispositivo. Sin embargo, una vez registrado, el servicio nunca desaparece a menos que realmente desactive el WiFi en el dispositivo que registró el servicio. La llamada a Unregisterservice no parece afectar un registro de servicio. UnRegisterallServices tampoco parece tener ningún efecto. ¿Alguien tiene alguna idea?
No hay solución correcta