我CTTelephonyCenterAddObserver(ct, NULL, callback, NULL, NULL, CFNotificationSuspensionBehaviorHold);
用来记录电话。
这是回调方法的代码
static void callback(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo)
{
NSString *notifyname=(NSString *)name;
if ([notifyname isEqualToString:@"kCTCallStatusChangeNotification"])
{
NSDictionary *info = (NSDictionary*)userInfo;
NSString *state=[[info objectForKey:@"kCTCallStatus"] stringValue];
NSLog(@"Call status changed = %@",state);
if ([state isEqualToString:@"5"]){//disconnect
NSLog(@"unanswered:%@",state);
}
if ([state isEqualToString:@"3"]){//OUTGOING
NSLog(@"Outgoing calls:%@",state);
}
if ([state isEqualToString:@"1"]){//connected
//Call Connected
}
callState=[state intValue];
}
}
我正在接收所有呼叫事件/状态,而回调方法没有任何问题。但是断开状态(5)存在问题。问题是当已经连接的呼叫断开并且呼叫持续时间超过 5/6 秒时,回调方法中未收到断开 (5) 状态。
有没有其他人遇到过同样的问题并找到了这个问题的解决方案?