質問

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も効果がないようです。誰かがアイデアを持っていますか?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top