【问题标题】:How do I know whether my iPhone/iPad is connected to 2G or 3G? [duplicate]我如何知道我的 iPhone/iPad 是连接到 2G 还是 3G? [复制]
【发布时间】:2011-11-14 13:18:09
【问题描述】:

我试图检查设备是通过 2G(GPRS、EDGE)还是 3G(UMTS、HSDPA)连接的。

我只从here(Apple Dev Example)中找到了 Reachability 示例类

此示例仅检查其 Wifi 或 WWAN。我想用它来决定我是下载小数据还是大文件。因为 GRPS 和 UMTS 有很大的不同。

能区分2G和3G吗?

【问题讨论】:

  • 检查的原因是什么?这不是网络速度的最佳指标。
  • 我有不同的图片尺寸。在 wifi 中我想使用质量最好的图片,在 3G 上使用正常尺寸的图片,在 2G 上使用质量差/小图片。
  • 一旦你检测到它不是 WiFi,你最好让它下载一个 1KB 的测试文件,然后有时间下载并根据传输速度选择合适大小的图像。
  • 可能会下载一个给定大小的示例文件,并根据所花费的时间确定您要提供的版本。但总的来说,我同意:想法可能应该是:要么是 Wifi,要么是慢
  • 我认为有时 3G 的速度足以下载大约 1 MB 的图片(在可接受的持续时间内)。 2G网络太慢,用户等待不耐烦。使用 1KB 的技巧只会奏效一次。有了这个,没有代表检查 2G 是否更改为 3G 网络。

标签: iphone ios networking reachability


【解决方案1】:

既然你不能通过官方的方式得到这些信息,不如截屏并为状态栏网络连接图标做一些解析器/图像处理。丑陋,但会工作。而且会很有趣:)

【讨论】:

  • 我认为这确实是一个糟糕的方法。如果苹果在下一个 iOS 中更改了图标,那么这种方法将不再有效。这绝对是错误的方式。
  • 没有错误的方法,只有简单和困难的方法 :) Apple 总是可以改变一些东西,甚至在不告知的情况下弃用基本功能,就像他们以前做过的那样 - 所以这里不是重点; )
【解决方案2】:

这在 iOS7 中是完全可能的。请检查此answer

希望对你有帮助

【讨论】:

    【解决方案3】:

    我认为最好的选择是“重新思考”您的流程:

    • 官方没有API判断用户是2G还是3G

    • 3G 在技术上比 2G 快,但在实践中,很多情况下 3G 非常非常慢(覆盖范围差、流量过多等)

    我是一个重度移动互联网用户,我的 2G 可能比 3G 更好。 还要考虑到 3G 在良好的条件下速度很快,但它并不是真正旨在支持大量数据(在运营商端和设备电池端)...

    这就是为什么您应该根据 WiFi / 非 WiFi 来决定下载小文件还是大文件。

    尽管如此,对于“小文件”,不要让它“太小”,大多数将在 WWAN 上使用您的应用程序的人可能会得到正确的覆盖范围。

    (根据我在法国和比利时使用相当不错的受众应用程序的经验)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      • 2016-10-07
      • 2012-11-22
      • 1970-01-01
      • 2016-11-17
      相关资源
      最近更新 更多