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

Posted

技术标签:

【中文标题】如何在我的 Android 应用程序中使用 3G 互联网连接?【英文标题】:How can I use a 3G internet connection in my Android App? 【发布时间】:2011-02-19 02:33:57 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

您是否调查过诸如当您使用 WiFi 时您的网络服务器是可访问的,因为您是从您的网络中访问它。然而,它可能根本无法从公共互联网访问,这就是 3G 连接尝试连接到服务器的方式。

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

【讨论】:

【参考方案2】:

问题是我使用的端口。我使用的是 4444,但事实证明许多网络阻塞了该端口。 1024 端口似乎适用于大多数人。

【讨论】:

在哪里可以找到该端口或如何更改其值?【参考方案3】:

值得我遇到同样的问题。我的应用程序可以通过 WiFi 完美运行,但不能通过 3G 运行。我在威瑞森。我也在使用端口 4444,因为我认为它是我选择的“随机”端口。由于 Verizon Wireless 阻止了这个端口,我花了一个多小时试图诊断我的错误。我切换到端口 444,它现在工作正常。非常令人沮丧。希望这对其他人有帮助。

【讨论】:

【参考方案4】:

Wifi 和 3G 之间不应该有任何额外的东西。我在清单权限中包含的所有内容都是 android.permission.INTERNET,它适用于 Wifi 或 3G,因此假设 Wifi 也需要 INTERNET(我不完全确定,因为我没有尝试了 JUST Wifi)并且您已经包含了它,我不知道其他任何内容。

如果碰巧 Wifi 不需要 INTERNET,而它恰好在没有它的情况下也能工作,那么 Manifest 应该包括如下一行:

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

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

【讨论】:

【参考方案5】:

创建套接字时引发的异常是 IOException,并且已达到超时 (4000)。当手机在 Wi-Fi 中时它工作正常,但当它使用 3G 时,套接字无法连接到主机/端口。

【讨论】:

【参考方案6】:

您必须与您的电话公司确认(祝您找到可以接听的人!)3G 网络不会阻止您希望打开的端口(并且处于 WiFi 模式时) )。一些电信公司几乎阻止了您期望(以及您的应用程序堆栈假定可用)成为 3G 网络(ping、telnet、RDP 等)标准的所有内容。

【讨论】:

以上是关于如何在我的 Android 应用程序中使用 3G 互联网连接?的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的应用程序放入 iPhone 3G?

如何在手机中检查 WIFI 和 3G(数据计划)中的网络连接启用或禁用?

当 3G 网络可用时,Android GCM 不适用于 wifi 网络

如何在 iOS 中检测 wifi 或 3G 信号强度?

如何在 Android SDK 中启用/禁用 3G/2G

通过 3G 网络问题导致 Asterisk 语音延迟