2009-08-13 12 views
7

¿Hay alguna manera de obtener la portadora del iPhone, y/o la potencia de la señal actual, usando Objective-C? Sé cómo determinar si hay una conexión de datos, y si esa conexión es wi-fi o celular. También sé que puede colocar manualmente el iPhone en el modo "prueba de campo" yendo a la aplicación del teléfono, y marcando # 3001 * 12345 * # y presionando Enviar.Obtención programática de la potencia de la señal del operador del iPhone

+0

¿Alguna vez encontrar una respuesta a esta pregunta? – Hauke

Respuesta

3

Me hiciste curioso y descubrí que en realidad es *3001#12345#* (hash y estrellas intercambiados).

2

Esto probablemente no pasará la revisión de Apple, pero puede utilizar las notificaciones de CTTelephony. Primero, enlace contra CTTelephony. Ahora sólo tiene que utilizar esto:

static void callback(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) { 

    CFShow(name) 

    NSString *sName = name; 
    if ([sName isEqualToString:@"kCTIndicatorsSignalStrengthNotification"]) { 
     if (userInfo) CFShow(userInfo); 
    }  
} 

Y esto para suscribirse:

 
id ct = CTTelephonyCenterGetDefault(); 

    CTTelephonyCenterAddObserver(
           ct, 
           NULL, 
           callback, 
           NULL, 
           NULL, 
           NULL); 
+0

¿Por qué no pasará la revisión? –

+1

A pesar de que CoreTelephony es una API pública desde iOS 4.0, CTTelephonyCenterGetDefault() y CTTelephonyCenterAddObserver() son métodos privados. Podría pasar la revisión, dependiendo del revisor, pero no debería. – fbernardo

+0

Acabo de probar esto y me dio mensajes sobre eventos de UI (UIViewAnimationDidStopNotification, por ejemplo) pero nada Telephony-ish. ¿Alguna idea de lo que podría estar mal? – brianestey

Cuestiones relacionadas