相关疑难解决方法(0)

Android 2.2上的多播

有没有人在Android 2.2上使用Multicast,特别是用于Bonjour服务检测的JmDNS.Android 1.5-> 2.0时间帧有很多问题和答案,包括stackOverflow,表明不同程度的成功,以及错误跟踪器中的错误,表明它已修复并关闭,为2.2(http://代码.google.com/p/android/issues/detail?id = 2323).我已经尝试了"TuneControl"源代码,但是这个工作在~1.5并且还没有更新,并且在2.2上对我不起作用.

那么,问题...... 1)有没有看到2.2上的多播工作,特别是JmDNS,特别是Bonjour服务检测?

2)代码中有什么必要使这项工作?

我正在使用适当的权限:

<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
Run Code Online (Sandbox Code Playgroud)

我获得了多播锁:

WifiManager wifi = (WifiManager)getSystemService( Context.WIFI_SERVICE );
if(wifi != null)
{
    MulticastLock mcLock = wifi.createMulticastLock("mylock");
    mcLock.acquire();
...
Run Code Online (Sandbox Code Playgroud)

然后尝试启动jmDNS以查找服务器:

    mdns = JmDNS.create(addr, HOSTNAME);
    jmdns.addServiceListener(TOUCH_ABLE_TYPE, listener);
    jmdns.addServiceListener(DACP_TYPE, listener);
    ...
Run Code Online (Sandbox Code Playgroud)

听众永远不会看到任何服务.我已经使用Wireshark验证了请求数据包是否已发送,服务器是否响应,但jmDNS库中的套接字侦听器代码从未看到响应数据包.

所以...我错过了什么?这仍然是一个错误吗?有没有人得到任何东西甚至远程像这样工作???

android multicast jmdns

16
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1

jmdns ×1

multicast ×1