是否可以使用iOS SDK检测LTE连接?
我正在使用可达性API检测我当前的连接,但我只能区分WIFI和3G 我得到以下标志: LTE:是否可以使用iOS SDK检测LTE连接?,ios,sdk,wireless,3g,connectivity,Ios,Sdk,Wireless,3g,Connectivity,我正在使用可达性API检测我当前的连接,但我只能区分WIFI和3G 我得到以下标志: LTE:kSCNetworkReachabilityFlagsIsLocalAddress | kSCNetworkReachabilityFlagsIsWWAN | kscnetworkreachabilityflagstressientconnection | kSCNetworkReachabilityFlagsReachable WIFI:KSCNetworkReachabilityFlagsDirec
kSCNetworkReachabilityFlagsIsLocalAddress | kSCNetworkReachabilityFlagsIsWWAN | kscnetworkreachabilityflagstressientconnection | kSCNetworkReachabilityFlagsReachable
WIFI:KSCNetworkReachabilityFlagsDirect | kSCNetworkReachabilityFlagsReachable
问题是LTE返回的标志与3G连接相同。有什么方法可以确定用户当前使用的是LTE还是3G?我想知道这个隐藏的核心电话API是否能为您提供足够的信息,让您确定您是连接到LTE还是更慢的技术
CTRegistrationGetCurrentMaxAllowedDataRate();
这可能值得一试
有关使用专用API的更多信息,请参见:
但是,我已经了解到,如果您使用私有API,您的应用程序将被苹果公司拒绝。从iOS 7开始,您可以使用CoreTelephony框架中
CTTelephonyNetworkInfo
的currentRadioAccessTechnology
属性来了解这一点
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new];
if ([networkInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]) {
// ...
}
#导入
CTTelephonyNetworkInfo*网络信息=[CTTelephonyNetworkInfo新];
if([networkInfo.currentRadioAccessTechnology IseQualString:CTRadioAccessTechnologyLTE]){
// ...
}
您是对网络带来的更高带宽感兴趣,还是对网络本身的类型感兴趣?前者有一个解决办法,但后者没有。我想解决办法只是简单地尝试下载一些东西并跟踪速度?有人知道为什么没有关于currentRadioAccessTechnology
方法的文档吗?此方法添加了iOS7.0,但没有添加文档。检查头文件“CTTelephonyNetworkInfo.h”oc@property(非原子、只读、保留)NSString*currentRadioAccessTechnology\uuuOSX\uAvailable\uStarting(\uuuMac\uNA,\uuuuuuuuIphone\u7\u0)代码>这仍然没有正式的文档记录,这让我很紧张。我把它放在一个try-catch中,这样如果它被拿走,我就可以有一些默认行为。