2009-08-13 5 views
7

Existe-t-il un moyen d'obtenir la porteuse de l'iPhone et/ou la puissance actuelle du signal en utilisant Objective-C? Je sais comment déterminer si une connexion de données est présente, et si oui ou non cette connexion est wi-fi contre cellulaire. Je sais également que vous pouvez placer manuellement l'iPhone en mode «test sur le terrain» en allant sur l'application du téléphone et en composant # 3001 * 12345 * # et en appuyant sur Envoyer.Obtenir la force du signal porteur de l'iPhone par programmation

+0

Avez-vous déjà trouver une réponse à cette question? – Hauke

Répondre

3

Vous m'avez rendu curieux et j'ai découvert que c'est en fait *3001#12345#* (hachages et étoiles échangées).

2

Cela ne passera probablement pas la revue d'Apple, mais vous pouvez utiliser les notifications CTTelephony. D'abord, lien contre CTTelephony. Maintenant, il suffit d'utiliser ceci:

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); 
    }  
} 

Et cela ABONNER:

 
id ct = CTTelephonyCenterGetDefault(); 

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

Pourquoi ne passera-t-il pas en revue? –

+1

Bien que CoreTelephony soit une API publique depuis iOS 4.0, CTTelephonyCenterGetDefault() et CTTelephonyCenterAddObserver() sont des méthodes privées. Il pourrait passer avis, selon le critique, mais il ne devrait pas. – fbernardo

+0

J'ai juste essayé ceci et cela m'a donné des messages à propos des événements d'UI (UIViewAnimationDidStopNotification, par exemple) mais rien de Téléphonique-ish. Une idée de ce qui pourrait être faux? – brianestey

Questions connexes