是否有可能使用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,您的应用将被苹果拒绝。