4

域名解析系统

我在这里实现 JmDNS 如下。在我的 android 2.3.5 htc Evo 上运行代码时,我能够发现我的 linux 计算机。但是,当我在我的三星 Galaxy s3 (4.1.0) 上运行相同的代码时,什么也没有出现。奇怪的是,一周前它还在我的 4.1 上工作,现在不行了。我在这里尝试过其他人的解决方案,但没有运气。如果有人经历过这一点,并且可以阐明为什么姜饼与 jmdns 而不是 jellybean 合作。

澄清:

我的 android 4.1 设备不会解析除从设备创建的服务之外的任何服务。我的 2.3 设备将解析除从 4.1 设备创建的服务之外的服务。可以是ip6到ip4吗?

4

2 回答 2

9

解决了:

我在这里部分遵循了建议,但我没有创建(字符串主机名)而是创建(InetAddress 地址)。

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 回答