1

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) 状态。

有没有其他人遇到过同样的问题并找到了这个问题的解决方案?

4

0 回答 0