如何在 iOS14 上检测 5G(NR)?

Cho*_*hos 3 5g ios14

苹果会在今年发布iPhone12,iPhone12(一些更高的设备类型)可以支持5G功能,我认为iPhone12应该是基于iOS14平台的,所以我查看了iOS14 API,但我们找不到任何关于 5G 的新 API。有人知道iPhone12的5G检测的一些信息吗?

感谢任何人提供的信息!

iOS14 API 差异:https : //developer.apple.com/documentation/technologies? changes = latest_major

Ale*_*ang 8

可能您应该查看CTTelephonyNetworkInfo,您会在其中找到serviceCurrentRadioAccessTechnology,以及currentRadioAccessTechnology。那应该为您提供您想要的东西。

但是,我无法告诉您 5G 的关键或价值是什么。但是,鉴于它们都是字符串,因此可能会出现一个新的字符串,并且可能会在 Xcode 12 的未来版本中添加一个属性来强类型它。

作为参考,此SO answer显示了如何识别 2G、3G 和 4G。

后续更新: Core Telephony Constants出现并提供了 2 个新字符串CTRadioAccessTechnologyNRCTRadioAccessTechnologyNRNSA,两者都可从 iOS 14+ 获得(考虑到 iPhone 12s 是第一个采用该技术的,这是合理的)。这应该通过术语 NR 得到加强,它似乎是5G命名5G NR(新无线电)的一部分。我今天没有要测试的电话,所以还没有确认这个属性会出现在哪里,但我仍然猜测在CTTelephonyNetworkInfo().serviceCurrentRadioAccessTechnology.

作为参考,要对此进行测试,您需要import CoreTelephony.

最新更新:

非常感谢Alessandro Martin在评论中分享这一点:

苹果方面有一个错误,因为 CTRadioAccessTechnologyNR 和 CTRadioAccessTechnologyNRSA 字符串被标记为可从 iOS 14.0 中使用,但实际上它应该是 iOS 14.1 考虑到 iOS 14.2 beta 上的用户将通过可用性检查,但它会因空指针而崩溃尝试访问这些字符串时出现异常,因为它们对它们不可用。

  • Apple 方面存在错误,因为“CTRadioAccessTechnologyNR”和“CTRadioAccessTechnologyNRSA”字符串被标记为从 iOS 14.0 可用,但实际上应该是 iOS 14.1 考虑到 iOS 14.2 beta 上的用户将通过可用性检查,但会崩溃尝试访问这些字符串时会出现空指针异常,因为它们不可用。 (2认同)
  • @AlexIoja-Yang 苹果文档是错误的。“CTRadioAccessTechnologyNR 和 CTRadioAccessTechnologyNRNSA 为 14.0+。” 需要14.1 (2认同)