首页 > 解决方案 > 如何在 iOS14 上检测 5G(NR)?

问题描述

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

感谢任何人提供的信息!

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

标签: ios145g

解决方案


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

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

作为参考,这个SO 答案显示了如何识别 2G、3G 和 4G。

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

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

最近更新:

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

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


推荐阅读