J2ME / MIDP - Как определить тип подключения (2G / 3G / 4G / Wi-Fi)?

Я много раз видел, как этот вопрос задавали в Интернете, но, похоже, нигде нет исчерпывающего ответа.

Я создал приложение J2ME, которое должно определять тип сетевого подключения (чтобы оно могло подключаться к другому ресурсу при подключении через Wi-Fi).

здесь ответ, относящийся к устройствам Nokia и одному здесь, который относится к устройствам BlackBerry, но я также занимаюсь разработкой для:

  • Huawei
  • Tecno
  • Samsung
  • Motorola
  • LG

Решение Nokia, похоже, использует System.getProperty("com.nokia.network.access"), так что кто-нибудь знает, каковы эквиваленты этого для других производителей устройств?


person ban-geoengineering    schedule 03.04.2015    source источник
comment
В случае, если невозможно определить тип подключения с помощью System.getProperty(), одной из возможных альтернатив может быть определение IP-адреса устройства на стороне сервера - см. javameblog.com/2007/12/ - но вам нужно знать, какие диапазоны IP-адресов соответствуют каким мобильным сетевые операторы (которые предположительно могут измениться со временем, поэтому было бы более целесообразно делать все это на стороне сервера и просто сообщать на мобильный телефон, использует ли он мобильное соединение или нет - тогда мобильный телефон может использовать эту информацию о подключении по мере необходимости).   -  person ban-geoengineering    schedule 03.04.2015
comment
У MIDP нет API для этого, точка. Nokia может предоставить некоторые «хаки» для свойств системы, в то время как большинство других поставщиков этого не делают, и для этого нет стандарта. J2ME изо всех сил пытался обеспечить согласованное поведение даже для MIDP, чего же тогда ожидать от лишних вещей?   -  person Mixaz    schedule 11.04.2015


Ответы (1)


Я думаю, вы можете слишком многого ожидать от MIDP. Как вы, несомненно, поняли, невозможно получить тип соединения с использованием стандартных API JavaME, поэтому, как вы также обнаружили, вы полагаетесь на специализированные параметры для разных брендов.

Возможно, вам придется поискать альтернативное решение. Если вы точно скажете, что именно вы хотите сделать, то, возможно, есть еще какие-нибудь хитрые «уловки».

Если я правильно понимаю, вы хотите подключиться к WAN IP при подключении к GPRS / 3G и LAN IP при подключении к Wi-Fi? В этом случае, если бы это был я, я бы просто удостоверился, что IP-адрес локальной сети был статическим, а затем всегда сначала пытался связаться с ним. Если вы подключены к Wi-Fi, вы сможете подключиться к нему. В противном случае он будет просто недоступен, и тогда вы сможете перейти к достижению IP-адреса WAN.

person mr_lou    schedule 06.04.2015
comment
Могут существовать и другие проприетарные решения (помимо решений Nokia), поэтому, надеюсь, другой разработчик предоставит информацию по ним. Обнаружение требуется, чтобы, если это мобильное соединение, загружался контент, специфичный для мобильного оператора, в противном случае (для соединения Wi-Fi) загружался другой статический контент, поэтому я не думаю, что ваше предложение подходит для меня. - person ban-geoengineering; 07.04.2015
comment
У Samsung МОЖЕТ быть системное свойство, как у Nokia, но, как правило, только Nokia реализовала и добавила в спецификацию. Поэтому я был бы очень удивлен, если вы найдете решение для других платформ. Я скрещиваю пальцы за тебя. Мне самому довольно любопытно, но, к сожалению, я не думаю, что это возможно. - person mr_lou; 07.04.2015