Я пытаюсь сделать так, чтобы мое приложение для Android регистрировало службу через zeroconf, пока приложение активно, а затем отменило регистрацию после выхода из приложения.В моем методе onResume у меня есть следующий код:
// 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);
}
, а затем в моем методе 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);
}
Я удалил код, поддерживающий многоадресную рассылку и т. Д.Дело в том, что я могу просто зарегистрировать сервис и впоследствии увидеть его, используя браузер zeroconf на другом устройстве.Однако после регистрации сервис никогда не исчезает, если я фактически не отключу Wi-Fi на устройстве, которое зарегистрировало сервис.Вызов unregisterService, похоже, фактически не влияет на регистрацию службы.unregisterAllServices, кажется, также не имеет никакого эффекта.У кого-нибудь есть идеи?