是否有可能使用iOS SDK检测LTE连接?

我使用可达性API来检测我目前的连接,但我只能区分WIFI和3G。

我得到以下标志:

LTE: kSCNetworkReachabilityFlagsIsLocalAddress|kSCNetworkReachabilityFlagsIsWWAN|kSCNetworkReachabilityFlagsTransientConnection|kSCNetworkReachabilityFlagsReachable

WIFI: kSCNetworkReachabilityFlagsIsDirect|kSCNetworkReachabilityFlagsReachable

问题在于LTE返回与3G连接相同的标志。 有什么方法可以确定用户目前是否拥有LTE或3G?

从iOS 7开始,您可以使用CoreTelephony框架中的CTTelephonyNetworkInfo的currentRadioAccessTechnology属性来CTTelephonyNetworkInfo

 #import <CoreTelephony/CTTelephonyNetworkInfo.h> CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new]; if ([networkInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]) { // ... } 

我想知道这个隐藏的核心电话API是否能够为您提供足够的信息来确定您是否连接到LTE或更慢的技术。

 CTRegistrationGetCurrentMaxAllowedDataRate(); 

这可能是值得尝试的。

更多关于在这里使用私人API: 使用核心电话的iPhone手机号码

但是,我读过如果您使用私有API,您的应用将被苹果拒绝。