是否可以使用iOS SDK检测LTE连接?
我使用可达性API来检测我目前的连接,但我只能区分WIFI和3G。是否可以使用iOS SDK检测LTE连接?
我得到了以下标志:
LTE:kSCNetworkReachabilityFlagsIsLocalAddress|kSCNetworkReachabilityFlagsIsWWAN|kSCNetworkReachabilityFlagsTransientConnection|kSCNetworkReachabilityFlagsReachable
WIFI:kSCNetworkReachabilityFlagsIsDirect|kSCNetworkReachabilityFlagsReachable
的问题是,LTE返回相同的标志作为一款3G连接。有什么方法可以确定用户目前是否拥有LTE或3G?
我不知道这个隐藏的核心电话API能否为您提供足够的信息来确定您是否连接到LTE或较慢的技术。
CTRegistrationGetCurrentMaxAllowedDataRate();
这可能是值得尝试的。
更多关于这里使用私有的API:iPhone mobile number using Core telephony
不过,我读过您的应用程序将通过苹果,如果你使用的API私人被拒绝。
从iOS 7开始,您可以在CoreTelephony框架中使用CTTelephonyNetworkInfo
的currentRadioAccessTechnology
属性找到它。
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new];
if ([networkInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]) {
// ...
}
有谁知道为什么'currentRadioAccessTechnology'方法没有文档? https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CTTelephonyNetworkInfo/Reference/Reference.html – Robert 2014-02-05 12:52:17
此方法添加了iOS7.0,但它不是添加文档。 检查头文件“CTTelephonyNetworkInfo.h” '''oc @property(nonatomic,readonly,retain)NSString * currentRadioAccessTechnology __OSX_AVAILABLE_STARTING(__ MAC_NA,__ IPHONE_7_0); ''' – TopChul 2014-05-15 08:35:38
这还没有正式记录,这让我感到紧张。我把它放在try catch中,这样如果它被带走,我可以有一些默认行为。 – 2015-02-05 16:10:09
您对网络带宽较高或网络本身的类型感兴趣吗?前者有一个解决方法,但不是后者。 – bendu 2012-04-15 03:16:54
我想解决的办法是简单地尝试下载并跟踪速度? – 2012-04-15 03:33:34