CallStateDisconnected обнаруживается только для входящих звонков, но не для звонков из моего приложения

Я могу'Обнаружение окончания вызова (состояние CallStateDisconnected), если я выполняю вызов из моего приложения. Но если я получаю вызов, когда мое приложение активно, я могу определить это состояние. Я также получаю состояние CTCallStateDialing дважды или 3 раза, когда вызов начинается из моего приложения. Раньше он работал под iOS5, такие проблемы возникали с iOS6.

Код моего приложения;

 self.callCenter = [[CTCallCenter alloc] init];
self.callCenter.callEventHandler = ^(CTCall* call) {

    // anounce that we've had a state change in our call center
    NSDictionary *dict = [NSDictionary dictionaryWithObject:call.callState forKey:@"callState"]; //BREAKPOINT HERE

    [[NSNotificationCenter defaultCenter] postNotificationName:@"CTCallStateDidChange" object:self userInfo:dict]; 

};

Странно то, что все это работает, если я помещаю точку останова в блок callEventHandler и возобновляю выполнение после завершения вызова, то я получаю CallStateDisconnected правильно.

Затем я подписываюсь на уведомления в моем контроллере представления и выполняю этот код, когда получаю их:}

- (void)ctCallStateDidChange1:(NSNotification *)notification
 {
  NSString *call = [[notification userInfo] objectForKey:@"callState"];


if ([call isEqualToString:CTCallStateDisconnected])
{
    NSLog(@"Call has been disconnected");

}
else if([call isEqualToString:CTCallStateDialing])
{

    NSLog(@"Call start");
}
else if ([call isEqualToString:CTCallStateConnected])
{
    NSLog(@"Call has just been connected");
}
else if([call isEqualToString:CTCallStateIncoming])
{
    NSLog(@"Call is incoming");
}
else
{
    NSLog(@"None");
}

Я звоню из своего приложения так:

        UIWebView *callWebview = [[UIWebView alloc] init];
        [self.view addSubview:callWebview];
        NSURL *telURL = [NSURL URLWithString:number];
        [callWebview loadRequest:[NSURLRequest requestWithURL:telURL]];

Я также зарегистрировал состояние приложения, и я получаю- (void)applicationDidBecomeActive:(UIApplication *)application

после того, как я начну звонить, я иду- (void)applicationDidEnterBackground:(UIApplication *)application

и после завершения вызова обратно- (void)applicationDidBecomeActive:(UIApplication *)application.

Это странно, чтоDidBecomeActive вызывается после совершения вызова и перед переходом в фоновый режим?

Ответы на вопрос(1)

Ваш ответ на вопрос