JMDNS не работает с подключением 4G? - PullRequest
0 голосов
/ 11 октября 2011

Я пытаюсь обнаружить некоторые мобильные устройства, использующие jmdns. Пока у меня есть Wi-Fi или 3G-соединение, устройства могут быть обнаружены. С тех пор, как я использовал соединение 4G, он сказал, что никаких устройств не обнаружено.

ConnectivityManager conMgr = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE);
if ( conMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED 
                || conMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED ) {}

Нужно ли ставить другое условие для подключения 4G? Каковы наиболее существенные различия между 4G и 3G программно?

1 Ответ

0 голосов
/ 11 октября 2011

Я очень удивлен, что работает на 3g.

Bonjour / Zeroconf использует mDNS для обнаружения IP-адресов других устройств. Он использует многоадресный UDP, чтобы объявить о себе другим. Я совершенно уверен, что это не работает в сетях 3g, так как они используют NAT , чтобы отделить пользователей друг от друга и предотвратить подключение к ним устройств в Интернете (входящие соединения - интернет на устройство 3g). Читает это ребята тестирование многоадресного UDP на 3g: http://sourceforge.net/projects/open-dis/forums/forum/683284/topic/4058262

Обновление

Для обнаружения сети на текущих устройствах 4g необходимо проверить ConnectivityManager.TYPE_WIMAX.

...