有没有一种使用Objective-C获取iPhone运营商和/或当前信号强度的方法?我知道如何确定是否存在数据连接,以及该连接是Wi-Fi还是蜂窝。我也知道您可以通过打开电话应用程序并拨打#3001*12345*#并按发送来手动将iPhone置于“场测试”模式中。
您让我很好奇,我发现实际上是*3001#12345#*
(星号和井号交换)。
这种方法可能无法通过苹果的审核,但您可以使用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);