我使用的可达性API来检测我的当前连接,但我只能WIFI和3G之间进行区分。
我得到以下标志:
:LTE kSCNetworkReachabilityFlagsIsLocalAddress|kSCNetworkReachabilityFlagsIsWWAN|kSCNetworkReachabilityFlagsTransientConnection|kSCNetworkReachabilityFlagsReachable
WIFI: kSCNetworkReachabilityFlagsIsDirect|kSCNetworkReachabilityFlagsReachable
问题是,LTE返回相同的标志作为一款3G连接。 有什么方法来确定用户当前是否具有LTE或3G?
由于iOS的7,你可以发现这一点,使用currentRadioAccessTechnology
财产CTTelephonyNetworkInfo
在CoreTelephony框架。
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new];
if ([networkInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]) {
// ...
}
我不知道这是否隐藏核心电话API可以为您提供足够的信息让你判断要连接到LTE或更慢的技术。
CTRegistrationGetCurrentMaxAllowedDataRate();
这可能是值得尝试。
更多关于使用此API的私有: iPhone手机号码使用核心电话
不过,我读过您的应用程序将通过苹果,如果你使用的API私人被拒绝。