2012-04-15 10 views
7

Sto utilizzando l'API di raggiungibilità per rilevare la mia connessione corrente, ma posso solo distinguere tra WIFI e 3G.È possibile rilevare la connessione LTE utilizzando l'SDK di iOS?

ottengo i seguenti flag:

LTE: kSCNetworkReachabilityFlagsIsLocalAddress|kSCNetworkReachabilityFlagsIsWWAN|kSCNetworkReachabilityFlagsTransientConnection|kSCNetworkReachabilityFlagsReachable

WIFI: kSCNetworkReachabilityFlagsIsDirect|kSCNetworkReachabilityFlagsReachable

Il problema è che LTE restituisce gli stessi bandiere come una connessione 3G. C'è un modo per determinare se l'utente ha attualmente LTE o 3G?

+0

Siete interessati alla maggiore larghezza di banda che viene fornita con la rete o solo al tipo di rete stessa? C'è una soluzione alternativa per il primo, ma non il secondo. – bendu

+0

Immagino che la soluzione alternativa sia semplicemente provare a scaricare qualcosa e tracciare la velocità? –

risposta

3

Mi chiedo se questa API di telefonia di base nascosta sia in grado di fornire informazioni sufficienti per determinare se si è collegati a un LTE oa una tecnologia più lenta.

CTRegistrationGetCurrentMaxAllowedDataRate(); 

Potrebbe valere la pena sperimentare.

più sull'utilizzo di API private qui: iPhone mobile number using Core telephony

Tuttavia, ho letto che la vostra applicazione sarà respinta da Apple se si utilizza API private.

15

A partire da iOS 7, è possibile scoprirlo utilizzando la proprietà currentRadioAccessTechnology di CTTelephonyNetworkInfo nel framework CoreTelephony.

#import <CoreTelephony/CTTelephonyNetworkInfo.h> 

CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new]; 

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

Qualcuno sa perché non c'è documentazione sul metodo 'currentRadioAccessTechnology'? https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CTTelephonyNetworkInfo/Reference/Reference.html – Robert

+0

Questo metodo ha aggiunto iOS7.0 ma non è stato aggiunto documenti. controllare il file di intestazione "CTTelephonyNetworkInfo.h" '' 'oc @property (nonatomico, readonly, retain) NSString * currentRadioAccessTechnology __OSX_AVAILABLE_STARTING (__ MAC_NA, __ IPHONE_7_0); '' ' – TopChul

+1

Questo non è ancora formalmente documentato che mi rende nervoso. Lo metto in una presa di prova in modo che possa avere un comportamento predefinito se viene portato via. –