JmDNS在android 4.1上无法正常工作

时间:2012-12-03 04:35:27

标签: android jmdns

JmDNS

我正在实现JmDNS,如下here。在我的android 2.3.5 htc Evo上运行代码时,我能够发现我的linux计算机。但是,当我在我的三星galaxy s3(4.1.0)上运行相同的代码时,没有任何显示。奇怪的是,它一周前在我的4.1上工作,现在却没有。我试过别人的解决方案here,但没有运气。如果有人经历过这一点,并且可以解释为什么姜饼与jmdns合作而不是软糖。

澄清:

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

2 个答案:

答案 0 :(得分:9)

<强>解决:

我部分遵循了建议here,但我没有创建(String hostName),而是创建了(InetAddress addr)。

String ip = Formatter.formatIpAddress(wifiManager.getConnectionInfo().getIpAddress());
_bindingAddress = InetAddress.getByName(ip);
_jmdns.create(_bindingAddress);

答案 1 :(得分: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);