iOS - Уведомление о том, когда происходит звонок? - PullRequest
4 голосов
/ 23 сентября 2011

Можно ли получать уведомления или обнаруживать, когда на телефоне iOS выполняется вызов GSM / CDMA?

У меня есть приложение, которое использует аудио в фоновом режиме, и я хочу быть в состоянии определить, когдапроисходит вызов, так что мое приложение может реагировать соответствующим образом, чтобы не вмешиваться в сотовый вызов в любом случае.

По сути, я хочу иметь возможность определять, когда происходит вызов, так что, если пользователь вводитмое приложение во время разговора может отключить некоторые функции.

Поэтому мне было интересно, как я могу обнаружить, что на устройстве происходит сотовый вызов?

Ответы [ 4 ]

9 голосов
/ 23 сентября 2011

Начиная с iOS 4, вы можете использовать класс CTCallCenter в платформе Core Telephony для регистрации обработчика событий, чтобы ваше приложение получало уведомление о начале или завершении вызова.CTCall, который он вам дает, имеет свойство callState, которое может быть CTCallStateDialing, CTCallStateIncoming, CTCallStateConnected или - когда оно заканчивается - CTCallStateDisconnected.

2 голосов
/ 08 июля 2015

Начиная с iOS 6, вы должны:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAudioInterruption:) name:AVAudioSessionInterruptionNotification object:session

и затем:

- (void)onAudioInterruption:(NSNotification*)notification
{
    NSDictionary *info = notification.userInfo;
    NSUInteger type = [[info valueForKey:AVAudioSessionInterruptionTypeKey] unsignedIntegerValue];

    if (type == AVAudioSessionInterruptionTypeBegan) {
        // stop audio (or whatever)
    } else if (type == AVAudioSessionInterruptionTypeEnded) {
        // restart audio (or whatever)
    }
}
1 голос
/ 23 сентября 2011

Посмотрите на Протокол AVAudioSessionDelegate .

0 голосов
/ 11 июля 2014

Вы можете использовать CoreTelephony framework. Но вы должны использовать какой-то приватный api. И для этого у меня есть демо-код.https://github.com/edison0951/AppNotifyBySMSDemo. И, наконец, решение MAP. То же самое с SMS-уведомлениями в iOS6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...