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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top