2012-04-15 18 views
7

Używam API osiągalności, aby wykryć moje bieżące połączenie, ale mogę tylko odróżnić WIFI od 3G.Czy można wykryć połączenie LTE za pomocą zestawu SDK iOS?

otrzymuję następujące flagi:

LTE: kSCNetworkReachabilityFlagsIsLocalAddress|kSCNetworkReachabilityFlagsIsWWAN|kSCNetworkReachabilityFlagsTransientConnection|kSCNetworkReachabilityFlagsReachable

WIFI: kSCNetworkReachabilityFlagsIsDirect|kSCNetworkReachabilityFlagsReachable

Problemem jest to, że LTE zwraca te same flagi jako połączenie 3G. Czy istnieje sposób ustalenia, czy użytkownik ma obecnie LTE lub 3G?

+0

Czy jesteś zainteresowany wyższą przepustowością sieci lub typem samej sieci? Istnieje obejście tego pierwszego, ale nie drugie. – bendu

+0

Domyślam się, że obejście tego problemu polega po prostu na próbie pobrania czegoś i śledzeniu prędkości? –

Odpowiedz

3

Zastanawiam się, czy ten ukryty interfejs Core Telephony API może dostarczyć Ci wystarczających informacji, aby określić, czy jesteś podłączony do LTE lub wolniejszej technologii.

CTRegistrationGetCurrentMaxAllowedDataRate(); 

Może warto eksperymentować.

Więcej informacji na temat używania prywatnych API tutaj: iPhone mobile number using Core telephony

Jednak czytałem, że Twoja aplikacja zostanie odrzucona przez Apple, jeśli używasz prywatnych API.

15

Od wersji iOS 7 można to sprawdzić za pomocą właściwości currentRadioAccessTechnology pod numerem CTTelephonyNetworkInfo w strukturze CoreTelephony.

#import <CoreTelephony/CTTelephonyNetworkInfo.h> 

CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new]; 

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

Czy ktoś wie, dlaczego nie ma dokumentacji dotyczącej metody "currentRadioAccessTechnology"? https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CTTelephonyNetworkInfo/Reference/Reference.html – Robert

+0

Ta metoda dodała iOS7.0, ale nie dodawała dokumentów. sprawdź plik nagłówka "CTTelephonyNetworkInfo.h" '' 'oc @property (nonatomic, readonly, retain) NSString * currentRadioAccessTechnology __OSX_AVAILABLE_STARTING (__ MAC_NA, __ IPHONE_7_0); '' ' – TopChul

+1

To nadal nie jest formalnie udokumentowane, co mnie denerwuje. Próbuję go złapać, aby uzyskać pewne domyślne zachowanie, jeśli zostanie ono odebrane. –

Powiązane problemy