以编程方式获得iPhone的运营商信号强度

时间:2009-08-13 04:59:43

标签: iphone signals cellular-network

使用Objective-C有没有办法获得iPhone的载体和/或当前的信号强度?我知道如何确定数据连接是否存在,以及该连接是否是wi-fi与蜂窝连接。我也知道您可以通过电话应用程序手动将iPhone置于“现场测试”模式,并拨打#3001 * 12345 *#并点击发送。

2 个答案:

答案 0 :(得分:3)

你让我很好奇,我发现它实际上是*3001#12345#*(哈希和星星交换过来)。

答案 1 :(得分:2)

这可能不会通过Apple的评论,但您可以使用CTTelephony通知。 首先,链接CTTelephony。 现在就用这个​​:

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

这是订阅:

id ct = CTTelephonyCenterGetDefault(); 

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