如何在我的Android应用程序中使用3G互联网连接?

我已经制作了一个可以连接到我在服务器上运行的程序的应用程序,但它似乎只能与WiFi一起使用。 当我尝试使用3G时,它不会建立连接。 为了使用3G,我必须打开或设置一些特殊的东西吗?

在应用程序级别,您(通常)不必担心手机可用的数据连接。

您是否已经研究过诸如使用WiFi时出现的问题,因为您可以从网络中访问Web服务器。 然而,它可能根本无法从公共互联网访问,这是3G连接将尝试连接到服务器的方式。

您在3G上遇到什么错误/exception?

问题是我正在使用的端口。 我使用的是4444,但事实certificate许多网络阻止了该端口。 端口1024似乎适用于大多数。

对于它的价值,我遇到了同样的问题。 我的应用程序可以完美地通过WiFi而不是3G。 我在Verizon。 我也使用4444端口,因为我认为它是我选择的“随机”端口。 感谢Verizon Wireless阻止此端口我花了一个多小时试图诊断我的错误。 我切换到444端口,现在工作正常。 非常令人沮丧。 希望这会帮助别人。

Wifi和3G之间不应该有任何额外的东西。 我在Manifest权限中包含的所有内容都是android.permission.INTERNET,并且无论是Wifi还是3G都能正常工作,所以假设Wifi也需要INTERNET(我不完全确定,因为我还没有试过JUST Wifi)你已经把它包括在内了,我不知道别的什么。

如果有可能Wifi不需要INTERNET,并且没有它就可以工作,Manifest应该包括如下行:

 

应该为您的手机授予互联网(和3G)访问权限。 很抱歉,如果没有回答这个问题,但我想不出任何其他原因,当Wifi工作正常时,3G会成为一个问题。 此外,请确保您可以从其他外部位置访问网络 – 正如我之前所说,这可能是一个安全问题,阻止外部访问。 (不确定你使用3G连接到什么)

在创建套接字时抛出的exception是IOException,并且达到超时(4000)。 当手机处于Wi-Fi状态时,它可以正常工作,但是当它使用3G时,套接字无法连接到主机/端口。

您必须与您的电话公司联系(并find能够回答的人好运!)3G网络不会阻止您期望打开的端口(并且处于WiFi模式时)。 一些电信公司阻止几乎所有你期望的(并且你的应用堆栈假定可用)是3G网络的标准(ping,telnet,RDP等等)。