JMDNS не работает с подключением 4G?

#android #connection #3g #jmdns #4g

#Android #подключение #3g #jmdns #4g

Вопрос:

Я пытаюсь обнаружить некоторые мобильные устройства, использующие 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. Я очень удивлен, что он работает на 3g. Даже если вы отключите Wi-Fi?

Ответ №1:

Я очень удивлен, что он работает на 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 .

Комментарии:

1. Упс, я думаю, что я не отключил Wi-Fi. Да, вы правы, это даже не работает с 3G. Теперь я понял, спасибо за отличное объяснение 🙂

2. Еще одна проблема, которую я хотел бы выяснить. Если я использую только 3G-соединение, оно не обнаружит ни одного устройства, но, по крайней мере, приложения работают с подключением к Интернету. Но когда я использую соединение 4G, он говорит, что «вообще нет соединения»

3. Трудно сказать, не видя ошибок или кода. Это две отдельные проблемы.