iPhone 3G / WiFi 连接

Posted

技术标签:

【中文标题】iPhone 3G / WiFi 连接【英文标题】:iPhone 3G / WiFi Connection 【发布时间】:2011-09-25 15:07:47 【问题描述】:

我喜欢为 iPhone 制作一个应用程序,它使用 Wifi 收集一些数据并使用 3G 将这些数据发送到互联网。 Wifi 连接将是临时的,不会提供任何互联网连接。因此,在这种情况下,wifi 将只是一个数据收集接口。

这可能吗?

从技术上讲: - iPhone 连接到 adhoc 网络并选择一个自动 IP,例如 169.254.x.x - 从 169.254.1.1 获取数据(传感器的已知 IP) - 使用网络服务将数据发送到 www.xyz.com/dataEntry

另外,我做了这个小测试: - 在我的 Win7 上创建一个 P2P 接入点 - 将我的 iPhone 连接到 P2P 接入点 - 尝试浏览 Internet 上的网站,但失败。例如,我无法打开 google.com。

android 怎么样,虽然不太重要,但我也想在 Android 上提供这个应用程序..

谢谢, F.

【问题讨论】:

听起来我们都处于类似的情况。你能提供一个样本来说明你是如何工作的吗?我有一个悬而未决的问题***.com/questions/8015553/… 【参考方案1】:

对于 iphone,大多数人从/使用Apple Reachability 示例代码开始。使用该代码,很容易判断当前的互联网连接是否是 wifi 连接。如果不是 wifi,你可以假设它是 3g 连接。

对于 Android,您可以使用 ConnectivityManagergetActiveNetworkInfo() API 获取当前网络信息。

【讨论】:

如果不是wifi,不要假设3G。有特定的枚举值 ReachableViaWWAN 和 ReachableViaWifi,检查那些。如果是 NotReachable,那么您需要通知用户 3G 连接不可用,让他们随意重试连接,或者在 3G 备份后自动重试(所有这些都显示在 Reachability 示例中)。此外,这是比 Apple 的示例代码更好的 Reachability 版本:blog.ddg.com/?p=24 感谢大家的回复.. 虽然并没有真正回答我的问题.. 我们正在谈论两个不同的网络域同时工作.. WiFi 用于没有互联网连接的本地子网和 3G互联网上的服务器... 据我所知,一部 iPhone 不能同时有两个连接... @darvids0n 是正确的。我以前没见过那个版本的可达性代码,谢谢! 好的..我已经证明这是可行的..我已经成功地在 WiFi 上发送和接收数据包(到 IP 169.254.1.1,这是传感器)并获得了 www.apple 的网络访问能力.com via Cellular .. 所以,是的.. 但是,我的手机在经过多次测试后停止通过 3G 工作并且需要重新启动才能恢复,因此在某处存在一个令人讨厌的错误。我也会追踪它。【参考方案2】:

只要连接到 ad-hoc WiFi 网络,iPhone 就会保持其 3G 链接。这就是 tether.com 的运作方式。有时即使打开 WiFi 并连接到 Internet,当 TCP/IP 连接打开时,3G 网络也会保持活跃。

Android 手机根本无法连接到 ad-hoc 网络。 API 14 (ICS) 通过 WiFiDirect 提供电话到电话的连接,但仅限于 Android 手机之间。当然,您可以 root 手机并允许临时连接。

【讨论】:

【参考方案3】:

简短的回答:是的,它有效! 基本上,您的主 iPhone 将有一个 SSID,可以让其他设备与之连接。这些设备将在与主设备相同的子网中自行分配一个 IP 地址。一旦他们没有分配默认网关,他们将无法连接到 Internet。

【讨论】:

以上是关于iPhone 3G / WiFi 连接的主要内容,如果未能解决你的问题,请参考以下文章

网站在 iPad / iPhone 上显示 JavaScript 错误,在 3G 下但在 WiFi 下没有

我可以在任何情况下阻止 iPhone 使用 3G 吗?

iphone4无线区域网连接后,只有一个E字母。确认已经链接上了,信号是满的,为啥就是没有扇形标志呢?

从 WiFi 切换到 3G 时出现网络错误

目标 C - 从 WiFi 切换到 3G,反之亦然

iPhone:用于测试的射频屏蔽