2012-04-15 2 views
7

연결 가능성 API를 사용하여 현재 연결을 감지하고 있지만 WIFI와 3G 만 구별 할 수 있습니다.iOS SDK를 사용하여 LTE 연결을 감지 할 수 있습니까?

나는 다음과 같은 플래그를 얻을 :

LTE : kSCNetworkReachabilityFlagsIsLocalAddress|kSCNetworkReachabilityFlagsIsWWAN|kSCNetworkReachabilityFlagsTransientConnection|kSCNetworkReachabilityFlagsReachable

WIFI : kSCNetworkReachabilityFlagsIsDirect|kSCNetworkReachabilityFlagsReachable

문제는 LTE가 3G 연결과 같은 플래그를 반환합니다. 사용자가 현재 LTE 또는 3G를 보유하고 있는지 여부를 판단 할 수있는 방법이 있습니까?

+0

네트워크와 함께 제공되는 높은 대역폭이나 네트워크 유형에만 관심이 있으십니까? 전자는 해결 방법이 있지만 후자는 해결 방법이 없습니다. – bendu

+0

해결 방법은 단순히 무언가를 다운로드하고 속도를 추적하는 것입니다. –

답변

3

숨겨진 Core Telephony API가 LTE에 연결되었는지 또는 더 느린 기술에 연결되었는지를 결정하는 데 충분한 정보를 제공 할 수 있는지 궁금합니다.

CTRegistrationGetCurrentMaxAllowedDataRate(); 

실험 할 가치가 있습니다.

더는 여기에 개인 API를 사용하는 방법에 대해 : iPhone mobile number using Core telephony

을하지만, 나는 당신이 개인 API를 사용하면 앱이 애플에 의해 거부됩니다 읽었습니다.

15

iOS 7부터 CoreTelephony 프레임 워크에서 CTTelephonyNetworkInfo이라는 currentRadioAccessTechnology 속성을 사용하여이를 확인할 수 있습니다.

#import <CoreTelephony/CTTelephonyNetworkInfo.h> 

CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new]; 

if ([networkInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]) { 
    // ... 
} 
+2

누구나 'currentRadioAccessTechnology' 메소드에 대한 문서가없는 이유를 알고 있습니까? https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CTTelephonyNetworkInfo/Reference/Reference.html – Robert

+0

이 방법은 iOS7.0을 추가했지만 문서를 추가하지 않았습니다. 헤더 파일 "CTTelephonyNetworkInfo.h"를 확인하십시오. '''oc @property (nonatomic, 읽기 전용, 보유) NSString * currentRadioAccessTechnology __OSX_AVAILABLE_STARTING (__ MAC_NA, __ IPHONE_7_0); ''' – TopChul

+1

아직도 공식적으로 문서화되지 않았기 때문에 긴장이됩니다. try catch에 넣어서 제거하면 일부 기본 동작을 가질 수 있습니다. –

관련 문제