【问题标题】:iPhone 3G / WiFi ConnectioniPhone 3G / WiFi 连接
【发布时间】: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.

【问题讨论】:

标签: iphone networking wifi 3g


【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多