Алеадам ответ правильный.Вам также необходимо убедиться, что вы приобрели многоадресные блокировки, как указано в комментариях и по адресу:
Android Multicast сокет прекращает прослушивание << Посмотрите на ответ Эриха (не принятый) </p>
Гораздо большая проблема заключается в том, что до появления Gingerbread Android не следовал надлежащим стандартам в своих многоадресных алгоритмах, как отмечалось в нескольких (сердитых) обменах с разработчиками Google здесь .На их форумах есть еще одна ошибка, из-за которой телефоны до Gingbread не могли должным образом подключиться к многоадресной рассылке, но сейчас я не могу ее найти.
Суть в том, что телефоны до Gingbread установили TTL многоадресных пакетов на 1. Так что, если что-нибудь по пути уменьшает TTL (обычно некоторый промежуточный маршрутизатор), ваш пакет «умрет на корню».
Google опубликовал исправление для ошибки TTL в сообщении, которое я связал, но для его исправления необходимо создать собственное ядро и развернуть его на телефоне.
Стоит также отметить, что несколько очень популярных телефонов не выполняют многоадресную передачу должным образом.На ум приходит HTC Incredible, который может отправлять, но не получать.Если вы используете прошивку стороннего производителя (например, Cyanogen), то многоадресная передача работает нормально.
Вне моей головы - вот некоторые из них, которые я знаю, работают / не работают
- HTC Incredibe (Не могу получить)
- Nexus One (OK)
- Nexus S (OK)
- Motorola Droid / Droid Pro (OK)