私は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) 状態がコールバック メソッドで受信されないことです。
他の誰かが同じ問題に直面し、この問題の解決策を見つけましたか?