Вопрос

Кто-нибудь заставил многоадресную рассылку работать на 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.

Итак, вопросы...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...

«Я потратил довольно много времени на отладку проблем MDNS с JMDNS на моем EVO и HTC Hero (CDMA).То, что я обнаружил, это то, что в EVO на EVO есть фильтр на месте Broadcom Wireless (и, поскольку я получаю похожий DERPT от пользователя HTC Desire - с тем же чипсетом, предположительно, этот телефон).Фильтр, по умолчанию, блокирует любой необушенный или сетевой трафик трансляции, включая многоадресную расстояние.Очевидно, теория была спасателем батареи.

Проблема, по -видимому, заключается в том, что WPA_Supplicant на EVO не поддерживает удаление этих фильтров, когда вы получаете многоадресную залок.(Проверьте вывод журнала сразу после того, как вы получите блокировку, и вы поймете, что я имею в виду).К сожалению, что произошло, так это то, что поставщики оборудования имеют фрагментированную многоадресную поддержку ....:("

Так...Похоже, это проблема устройства, а не проблема кодирования.Ох.:( Если у меня будет возможность протестировать на другом устройстве...

Другие советы

Я делал немного исследований в этом, и я считаю, что это проблема с Android в целом, и зафиксировано в Android или в зависимости от 3,3.7.

Это слишком анекдотирует, но вот что я проверял:

  • HTC Desire, 2.2, запас: провал
  • HTC Desire, 2.3.7, Cyanogenmod: успех
  • Motorola Milestone, 2.1-Update1: Fail
  • HTC Desire S, 2.3.3: провалиться
  • Acer Iconia A501, 3.2.1: Успех
  • Samsung что-то, 2.3.3: провалиться
  • HTC Legend, 2.2 Я думаю: сбой

Когда я говорю «неудачу», на самом деле все они могли отправлять многоадресные сообщения на «Успех» устройств, но никогда не получают ничего обратно, кроме их собственных сообщений - как описывает jldupont.

Обратите внимание, что Multicast IM приложение Kouchat. Доступно только для 2.3.7, даже если он может быть сделан, чтобы скомпилировать до 2,1, что дает дальнейшее доверие к этой теории.

Я думаю, что другой причина - ваш AP не поддерживает.

Другое: Компьютер Отправить / Получение в / с Android

Ваш компьютер должен использовать только Wi-Fi, Best Off Undow

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top