【问题标题】:How to detect the 5G(NR) on iOS14?如何在 iOS14 上检测 5G(NR)?
【发布时间】:2021-01-13 20:14:52
【问题描述】:

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

感谢任何人提供的信息!

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

【问题讨论】:

    标签: ios14 5g


    【解决方案1】:

    您可能应该查看CTTelephonyNetworkInfo,在那里您会找到serviceCurrentRadioAccessTechnologycurrentRadioAccessTechnology。这应该可以满足您的需求。

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

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

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

    作为参考,要测试这个,你需要import CoreTelephony

    最新更新:

    非常感谢 Alessandro Martin 在评论中分享此内容:

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

    【讨论】:

    • 非常感谢,这确实有道理。
    • 重要! iOS 版本 >= iOS 14.1
    • 嗨@michaelxing,我不确定什么需要iOS 14.1 +? CTTelephonyNetworkInfo.serviceCurrentRadioAccessTechnology 是 12 +。 CTRadioAccessTechnologyNRCTRadioAccessTechnologyNRNSA 是 14.0+。严格基于 API @available 标志,答案中没有任何内容需要 14.1
    • Apple 有一个错误,因为 CTRadioAccessTechnologyNRCTRadioAccessTechnologyNRSA 字符串被标记为在 iOS 14.0 中可用,但实际上它应该是 iOS 14.1 考虑到 iOS 14.2 beta 上的用户会通过可用性检查,但在尝试访问这些字符串时会因空指针异常而崩溃,因为它们对它们不可用。
    • @AlexIoja-Yang 苹果文档错误。 “CTRadioAccessTechnologyNR 和 CTRadioAccessTechnologyNRNSA 是 14.0+。”需要 14.1
    猜你喜欢
    • 2022-06-25
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    相关资源
    最近更新 更多