Кто-нибудь получил Multicast для работы на Android 2.2, в частности JmDNS для обнаружения службы Bonjour. Есть много вопросов: & ответы с таймфрейма Android 1.5-> 2.0, в том числе на stackOverflow, которые указывают на разные уровни успеха, а также ошибку в отслеживании ошибок, которая указывает, что она была исправлена и закрыта для 2.2 (http://code.google.com/p/android/issues/detail?id=2323). Я пробовал исходный код «TuneControl», но это работало на ~ 1.5 и не обновлялось и не работает для меня в версии 2.2.Multicast на Android 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.
Итак ... я что-то упустил? Это еще ошибка? ЛЮБОЙ получил что-то даже отдаленно, как это, чтобы работать ???
групповой обработки на Android действительно является проблематичным в этой точке (2.2). – jldupont
Я получаю «многоадресную блокировку» ОК на устройстве Samsung Galaxy S, но получаю только пакеты, которые я отправил. Чтобы обойти эту проблему для моего приложения, я создаю веб-службу, которая будет использоваться для «регистрации» LAN-сервисов, которые я хочу контролировать с помощью своих Android-устройств. Таким образом, я не зависим от наличия многоадресной рассылки на аппаратном обеспечении. – jldupont