Звоните события в iPhone

Я пытаюсь получить события Call (звонок получен, звонок завершен и т. Д.) Я попытался запустить пример кода CoreTelephonyDemo, но я не получаю никаких событий звонка. Кто-нибудь может направить меня к тому же.

Я пробовал этот код в applicationWillResignActive, но я не получаю никаких событий. Я что-то упускаю или делаю что-то не так? Пожалуйста, руководство.

- (void)applicationWillResignActive:(UIApplication *)application
{
   CTCallCenter *callCenter1 = [[CTCallCenter alloc] init];
    callCenter1.callEventHandler=^(CTCall* call)
    {
        if (call.callState == CTCallStateDisconnected)
        {
            NSLog(@"Call has been disconnected");
        }
        else if (call.callState == CTCallStateConnected)
        {
            NSLog(@"Call has just been connected");
        }
        else if(call.callState == CTCallStateConnected)
        {
            NSLog(@"Call is incoming");
        }
        else
        {
            NSLog(@"None of the conditions");
        }
    };
}

1 ответ

Вы можете обнаружить события вызова. Ваша заявка делегат будет получать звонки в различные UIApplicationDelegate Методы протокола, когда происходят различные события. Одним из них является - (void)applicationWillResignActive:(UIApplication *)метод приложения, который вызывается для входящих вызовов или текстовых сообщений, но может вызываться и по другим причинам.

Вы можете обнаружить вызов, только если ваше приложение работает на переднем плане.

Если ваше приложение попадет в любую из категорий фонового запуска (VOIP, AUDIO, отслеживание местоположения или аксессуар), вы можете использовать CTCallCenter на заднем фоне. Но имейте в виду, что Apple отклонит ваше приложение, если вы пропустите использование фонового режима запуска для чего-то, для чего он не предназначен.

CTCallCenter позволит вам обнаружить любые звонки, которые начаты или уже выполняются.

Однако вы не сможете обнаружить какие-либо подробности о звонке, CTCall идентификация вызова покажет вам только это состояние. CallID из CTCall просто даст вам уникальный идентификатор для вызова, но не номер вызываемого.

Другие вопросы по тегам