【问题标题】:How to check if device is LTE, 3G, HSPA or Wi-Fi?如何检查设备是 LTE、3G、HSPA 还是 Wi-Fi?
【发布时间】:2012-09-07 19:35:19
【问题描述】:

当用户与我的应用交互时,是否可以确定设备上的网络类型?

现在我有 Reachability 类,我可以区分 Wi-Fi 和 Cellular,但是如何检查 Cellular 是 LTE、3G、HSPA、EDGE?

【问题讨论】:

  • 我不建议这样做。仅仅因为您的 LTE 连接速度较慢,并不能保证它比 3G 连接速度更快。
  • 我不在乎 LTE 网络有多快。最后它比 HSPA 和 EDGE 更快,对吧?
  • 不,LTE 具有比其他技术更快的能力。例如,在奥地利山区使用 3G 时,您将获得比使用 EDGE 时更​​低的下载速率。那是因为 3G 信号很差,但它仍然存在,所以 iPhone 会尝试使用它。尚未完工的 LTE 网络也是如此。简而言之:LTE 可以比 3G 慢,3G 可以比 EDGE 慢,等等。在大多数情况下,实际下载速率将比蜂窝网络类型提供更多信息。
  • 那么你有什么建议?不区分任何蜂窝网络,只区分蜂窝和 wi-fi?
  • 取决于您需要的不同之处。您可以测量下载速率或仅区分蜂窝网络和 wi-fi。

标签: iphone ios xcode cocoa-touch cellular-network


【解决方案1】:

从 iOS7 开始,可以使用 CTTelephonyNetworkInfo() 获得有关蜂窝连接的信息:

let info = CTTelephonyNetworkInfo()
print(“carrierName": " + "\(info.subscriberCellularProvider?.carrierName ?? "Has not been configured for carrier")")
print(“currentRadioAccessTechnology: " + "\(info.currentRadioAccessTechnology ?? "Airplane Mode/No cell connection")")

currentRadioAccessTechnology 将显示一个描述连接类型的字符串。

【讨论】:

    【解决方案2】:

    目前无法区分不同类型的蜂窝网络。

    更多信息请参见this question

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      • 2013-08-16
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多