Как я могу использовать интернет-соединение 3G в моем приложении для Android? - PullRequest
6 голосов
/ 13 мая 2010

Я создал приложение, которое может подключаться к программе, которую я запускаю на сервере, но, похоже, работает только с WiFi. Когда я пытаюсь использовать 3G, он не устанавливает соединение. Есть ли что-то особенное, что я должен включить или настроить, чтобы использовать 3G?

Ответы [ 6 ]

1 голос
/ 07 ноября 2010

Из-за того, что стоит, у меня была точно такая же проблема. Мое приложение будет отлично работать через WiFi, но не через 3G. Я на Веризоне. Я также использовал порт 4444, потому что думал, что это «случайный» порт, который я выбрал. Благодаря блокировке этого порта Verizon Wireless я потратил более часа, пытаясь диагностировать свою ошибку. Я переключился на порт 444, и теперь он работает нормально. Очень расстраивает. Надеюсь, это поможет кому-то еще.

1 голос
/ 11 сентября 2010

Проблема была в порте, который я использовал. Я использовал 4444, но оказалось, что многие сети блокируют этот порт. Порт 1024, кажется, работает для большинства.

1 голос
/ 13 мая 2010

На уровне приложения вам (как правило) не нужно беспокоиться о том, какое соединение для передачи данных доступно в телефоне.

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

Какую ошибку / исключение вы получаете в 3G?

0 голосов
/ 04 августа 2010

Вы должны будете уточнить у своей телефонной компании (и удачи в поиске человека, который может ответить !!), что сеть 3G не блокирует порты, которые вы ожидаете открыть (и которые находятся в режиме WiFi) ). Некоторые операторы блокируют практически все, что вы ожидаете (и ваш стек приложений предполагается доступным), чтобы быть стандартными для сетей 3G (ping, telnet, RDP и т. Д. И т. Д.).

0 голосов
/ 14 мая 2010

Исключением, которое выдается при создании сокета, является IOException, и достигается тайм-аут (4000). Когда телефон подключен к Wi-Fi, он работает нормально, но при использовании 3G розетка не может подключиться к хосту / порту.

0 голосов
/ 14 мая 2010

Между Wi-Fi и 3G не должно быть ничего дополнительного. Все, что я включил в свои разрешения для манифеста, - это android.permission.INTERNET, и это прекрасно работает как с Wi-Fi, так и с 3G, поэтому предполагается, что для Wifi необходим интернет-интерфейс (в этом я не совсем уверен, поскольку попробовал просто Wifi) и вы его уже включили, больше ничего не знаю.

Если по какой-то причине Wi-Fi НЕ требует ИНТЕРНЕТ, и он работает без него, Манифест должен содержать строку вроде:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

, который должен предоставить доступ к Интернету (и 3G) для вашего телефона. Извините, если это не ответит на вопрос, но я не могу думать ни о какой другой причине, что 3G будет проблемой, когда Wifi работает нормально. Кроме того, убедитесь, что вы можете получить доступ к сети из другого внешнего местоположения - как я уже говорил, это может быть вопросом безопасности, каким-то образом предотвращающим доступ извне. (Не уверен, что вы используете 3G для подключения)

...