JMDNSを使用したZeroconfサービスの登録を解除します
質問
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ブラウザーを使用して表示できることです。ただし、登録されると、サービスを登録したデバイス上のWiFiを実際に無効にしない限り、サービスは消滅しません。 Unregisterserviceへの呼び出しは、実際にサービス登録に影響しないようです。 UnregisterallServicesも効果がないようです。誰かがアイデアを持っていますか?
正しい解決策はありません
所属していません StackOverflow