2012-04-15 21 views
7

Estoy usando la API de accesibilidad para detectar mi conexión actual, pero solo puedo distinguir entre WIFI y 3G.¿Es posible detectar la conexión LTE usando iOS SDK?

me sale el siguiente banderas:

LTE: kSCNetworkReachabilityFlagsIsLocalAddress|kSCNetworkReachabilityFlagsIsWWAN|kSCNetworkReachabilityFlagsTransientConnection|kSCNetworkReachabilityFlagsReachable

WIFI: kSCNetworkReachabilityFlagsIsDirect|kSCNetworkReachabilityFlagsReachable

El problema es que LTE devuelve los mismos parámetros que una conexión 3G. ¿Hay alguna forma de determinar si el usuario tiene actualmente LTE o 3G?

+0

¿Está interesado en el mayor ancho de banda que viene con la red o solo el tipo de red en sí? Hay una solución para la primera, pero no la última. – bendu

+0

Supongo que la solución es simplemente intentar descargar algo y seguir la velocidad? –

Respuesta

3

Me pregunto si esta API de telefonía central oculta puede proporcionarle información suficiente para que usted determine si está conectado a una tecnología LTE o más lenta.

CTRegistrationGetCurrentMaxAllowedDataRate(); 

Podría ser vale la pena experimentar.

Más acerca del uso de APIs privadas aquí: iPhone mobile number using Core telephony

Sin embargo, he leído que su aplicación será rechazada por Apple si se utiliza APIs privadas.

15

A partir de iOS 7, puede averiguarlo utilizando la propiedad de currentRadioAccessTechnologyCTTelephonyNetworkInfo en el marco CoreTelephony.

#import <CoreTelephony/CTTelephonyNetworkInfo.h> 

CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new]; 

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

¿Alguien sabe por qué no hay documentación sobre el método 'currentRadioAccessTechnology'? https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CTTelephonyNetworkInfo/Reference/Reference.html – Robert

+0

Este método agregó iOS7.0 pero no fue para agregar documentos. compruebe el archivo de encabezado "CTTelephonyNetworkInfo.h" '' 'oc @property (no atómico, solo de lectura, retener) NSString * currentRadioAccessTechnology __OSX_AVAILABLE_STARTING (__ MAC_NA, __ IPHONE_7_0); '' ' – TopChul

+1

Esto todavía no está documentado formalmente, lo que me pone nervioso. Lo pongo en una captura de prueba para que pueda tener un comportamiento predeterminado si se lo quitan. –

Cuestiones relacionadas