1

Androidデバイスをホットスポット/アクセスポイント(AP)として設定した場合、JmDNS(3.4.0)を使用してこのAPに接続されている他のデバイスを見つけるにはどうすればよいですか?

通常のAPを使用すると、JmDNSインスタンスを通常の方法で作成するときにすべてが正常に機能します。

jmdns = JmDNS.create();

しかし、私のデバイスをAPとして使用すると、これは例外をスローします。

    java.net.SocketException: No such device
    at org.apache.harmony.luni.platform.OSNetworkSystem.setSocketOption(Native Method)
    at dalvik.system.BlockGuard$WrappedNetworkSystem.setSocketOption(BlockGuard.java:382)
    at org.apache.harmony.luni.net.PlainDatagramSocketImpl.setOption(PlainDatagramSocketImpl.java:198)
    at org.apache.harmony.luni.net.PlainDatagramSocketImpl.join(PlainDatagramSocketImpl.java:137)
    at java.net.MulticastSocket.joinGroup(MulticastSocket.java:190)
    at javax.jmdns.impl.JmDNSImpl.openMulticastSocket(JmDNSImpl.java:459)
    at javax.jmdns.impl.JmDNSImpl.<init>(JmDNSImpl.java:420)
    at javax.jmdns.JmDNS.create(JmDNS.java:60)

ローカルIPを使用してJmDNSインスタンスを作成してみました

jmdns = JmDNS.create( InetAddress.getByName("192.168.1.1") );

同じ例外をスローします。

JmDNSにローカルAPに接続されているサービスを検索させるにはどうすればよいですか?

4

3 に答える 3

1

マルチキャスト ロックを取得できないため、ローカル ホットスポットでマルチキャストを使用することはできません。したがって、JmDNS は機能しません。

この問題を抱えている他の人にとって、私が最終的に使用した接続デバイスを見つけるための代替ソリューションは、 /proc/net/arp の解析に基づいています

于 2012-04-26T13:55:36.387 に答える
0

これがあなたの質問に直接答えるとは思いませんが、アクティブなwifi jmDNSがないと機能しないことがわかりました。Wi-Fi がオフの場合、検出を無効にする必要がありました。

于 2012-03-08T23:06:55.893 に答える