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

Gil*_*vik 7 sdk wireless connectivity 3g ios

我正在使用可访问性API来检测我当前的连接,但我只能区分WIFI和3G.

我得到以下标志:

LTE: kSCNetworkReachabilityFlagsIsLocalAddress|kSCNetworkReachabilityFlagsIsWWAN|kSCNetworkReachabilityFlagsTransientConnection|kSCNetworkReachabilityFlagsReachable

无线上网: kSCNetworkReachabilityFlagsIsDirect|kSCNetworkReachabilityFlagsReachable

问题是LTE返回与3G连接相同的标志.有没有办法确定用户目前是否有LTE或3G?

jzz*_*occ 15

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

#import <CoreTelephony/CTTelephonyNetworkInfo.h>

CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new];

if ([networkInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

  • 有谁知道为什么没有关于`currentRadioAccessTechnology`方法的文档?https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CTTelephonyNetworkInfo/Reference/Reference.html (2认同)

小智 3

我想知道这个隐藏的核心电话 API 是否可以为您提供足够的信息来确定您是否连接到 LTE 还是速度较慢的技术。

CTRegistrationGetCurrentMaxAllowedDataRate();
Run Code Online (Sandbox Code Playgroud)

这可能值得尝试。

有关使用私有 API 的更多信息,请参见此处:使用 Core 电话的 iPhone 手机号码

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