gpt4 book ai didi

android - Android 2.2 上的多播

转载 作者:IT老高 更新时间:2023-10-28 23:32:42 25 4
gpt4 key购买 nike

有没有人让 Multicast 在 Android 2.2 上工作,特别是用于 Bonjour 服务检测的 JmDNS。 Android 1.5->2.0 时间范围内有许多问题和答案,包括在 stackOverflow 上,表明不同程度的成功,以及错误跟踪器中的错误,表明它已在 2.2 (http://code.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"/>

我获得了多播锁:

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

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

    mdns = JmDNS.create(addr, HOSTNAME);
jmdns.addServiceListener(TOUCH_ABLE_TYPE, listener);
jmdns.addServiceListener(DACP_TYPE, listener);
...

监听器永远不会看到任何服务。我已经使用 Wireshark 验证了请求数据包已发送,并且服务器进行了响应,但 jmDNS 库中的套接字监听器代码从未看到响应数据包。

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

最佳答案

为了(粗鲁地)回答我自己的问题,http://code.google.com/p/android/issues/detail?id=2917#c48 提供了更多信息由另一个人。正如他们所说,为了后代,这是 brian.ro...@gmail.com 的答案...

"I've spent quite a bit of time debugging mDNS issues with JmDNS on my Evo and HTC Hero (CDMA). What I found is there appears to be a filter in place in the broadcom wireless driver on the Evo (and since I'm getting a similiar reprt from an HTC Desire user - with the same chipset, presumably that handset as well). The filter, by default, blocks any non-unicast or network broadcast traffic, including multicast. Apparently the theory was it's a battery saver.

The problem appears to be the wpa_supplicant on the Evo does not support removing those filters when you get a MulticastLock. (Check the log output right after you get the lock and you'll see what I mean). Unfortunately what has happened is the hardware vendors have fragmented multicast support.... :("

所以...看来这是一个设备问题,而不是编码问题。哦。 :( 如果我有机会在另一台设备上进行测试...

关于android - Android 2.2 上的多播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3623143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com