以编程方式获取iPhone';s载波信号强度
有没有办法使用Objective-C获取iPhone的载波和/或当前信号强度?我知道如何确定是否存在数据连接,以及该连接是否为wi-fi连接或蜂窝连接。我还知道,你可以手动将iPhone置于“现场测试”模式,方法是打开手机应用程序,拨“3001*12345*”,然后点击“发送”。你让我好奇,我发现它实际上是以编程方式获取iPhone';s载波信号强度,iphone,signals,cellular-network,Iphone,Signals,Cellular Network,有没有办法使用Objective-C获取iPhone的载波和/或当前信号强度?我知道如何确定是否存在数据连接,以及该连接是否为wi-fi连接或蜂窝连接。我还知道,你可以手动将iPhone置于“现场测试”模式,方法是打开手机应用程序,拨“3001*12345*”,然后点击“发送”。你让我好奇,我发现它实际上是*3001*12345*(散列和星星交换)。这可能不会通过苹果的审查,但您可以使用电话通知。 首先,联系电话。 现在就用这个: static void callback(CFNotificat
*3001*12345*
(散列和星星交换)。这可能不会通过苹果的审查,但您可以使用电话通知。
首先,联系电话。
现在就用这个:
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);
}
}
静态void回调(CFNotificationCenterRef中心、void*观察者、CFStringRef名称、const void*对象、CFDictionaryRef用户信息){
CFShow(姓名)
NSString*sName=名称;
if([sName isEqualToString:@“kCTIndicatorsSignalStrengthNotification”]){
if(userInfo)CFShow(userInfo);
}
}
这本书是要订阅的:
id ct = CTTelephonyCenterGetDefault();
CTTelephonyCenterAddObserver(
ct,
NULL,
callback,
NULL,
NULL,
NULL);
id ct=CTTelephonyCenterGetDefault();
CTTelephonyCenterAddObserver(
计算机断层扫描,
无效的
回拨,
无效的
无效的
无效);
你有没有找到这个问题的答案?为什么它不会通过审查?尽管CoreThelphony自iOS 4.0以来是一个公共API,但ctTelephoncEnterGetDefault()和ctTelephoncEnterAddObserver()是私有方法。它可能会通过审核,这取决于审核人,但它不应该通过。我只是尝试了一下,它给了我一些关于UI事件的消息(例如UIViewAnimationDidStopNotification),但没有电话提示。知道有什么问题吗?你用的是什么iOS版本?你把你的项目和CT联系起来了吗?事实上,忽略我最后的评论。我只是没有等足够长的时间——信号强度并不像我预期的那么频繁。