4

JmDNS

私はここで次のようにJmDNSを実装しています。android 2.3.5 htc Evoでコードを実行すると、Linuxコンピューターを見つけることができます。ただし、サムスンギャラクシーS3(4.1.0)で同じコードを実行すると、何も表示されません。奇妙なことに、それは1週間前に私の4.1で動作していましたが、現在は動作していません。私はここで他の誰かの解決策を試しましたが、運がありません。誰かがこれを経験し、ジンジャーブレッドがjmdnsで機能しているが、ジェリービーンズでは機能していない理由を明らかにすることができれば。

明確化:

私のAndroid4.1デバイスは、デバイスから作成されたサービスを除いて、サービスを解決しません。私の2.3デバイスは、4.1デバイスから作成されたサービスを除くサービスを解決します。ip6からip4でしょうか?

4

2 に答える 2

9

解決済み:

ここでのアドバイスに部分的に従いましたが、create(String hostName)の代わりにcreate(InetAddress addr)を実行しました。

String ip = Formatter.formatIpAddress(wifiManager.getConnectionInfo().getIpAddress());
_bindingAddress = InetAddress.getByName(ip);
_jmdns.create(_bindingAddress);
于 2012-12-03T05:32:29.327 に答える
4

私の電話(android 4.1)では、他の人が参照できるように、次のコードが機能していると確信しています〜

WifiManager wifi=(WifiManager)getSystemService(android.content.Context.WIFI_SERVICE);

WifiInfo wifiinfo = wifi.getConnectionInfo();
int intaddr = wifiinfo.getIpAddress();

byte[] byteaddr = new byte[] { (byte) (intaddr & 0xff), (byte) (intaddr >> 8 & 0xff), (byte) (intaddr >> 16 & 0xff), (byte) (intaddr >> 24 & 0xff) };
InetAddress addr=InetAddress.getByAddress(byteaddr); //Need to process UnknownHostException

jmdns=JmDNS.create(addr);
于 2013-01-22T09:46:13.203 に答える