Non registrazione di un servizio Zeroconf utilizzando JMDNS
Domanda
Sto provando a rendere la mia app Android un servizio tramite Zeroconf mentre l'app è attiva, e quindi annullarla dopo la uscita dall'app. Nel mio metodo OnResume ho il seguente codice:
// 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);
}
e poi successivamente nel mio metodo OnPause:
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);
}
Ho eliminato il codice che fa abilitazione multicast, ecc. Il punto è che posso registrare bene il servizio e posso successivamente vederlo usando un browser Zeroconf su un altro dispositivo. Tuttavia, una volta registrato, il servizio non scompare mai a meno che non disabilitino effettivamente il WiFi sul dispositivo che ha registrato il servizio. La chiamata a UnGorsterservice non sembra influire effettivamente una registrazione del servizio. I servizi non reggisterAllS non sembrano avere alcun effetto. Qualcuno ha qualche idea?
Nessuna soluzione corretta