Обнаружение состояния вызова в iOS4

Я хотел бы знать, существует ли возможность обнаружить, если пользователь находится в вызове из приложения, которое в настоящее время находится в фоне.

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

Или, еще больше, чем тот - являются там возможностью обнаружить, какое приложение находится на переднем плане?
Я не полагаю, что это возможно, но я должен был попробовать... ;-)

Любая информация будет цениться.

Спасибо.

10
задан JOM 24 January 2012 в 12:35
поделиться

2 ответа

В CTCallCenter есть метод callEventHandler , с помощью которого вы можете передать блок, который будет вызываться при возникновении событий вызова. В этом блоке вам будет передан объект CTCall , и вы сможете получить callState .Таким образом, вы можете получать уведомление, когда вызов инициирован или завершен, и обрабатывать его соответствующим образом. Вы не можете узнать, какое приложение инициировало вызов, но если вы установите ivar при вызове, вы можете сказать, что это ваше приложение сделало вызов.

Например:

CTCallCenter *callCenter = [[CTCallCenter alloc] init];
callCenter.callEventHandler=^(CTCall* call){
    if (call.callState == CTCallStateDisconnected)
    { 
        //handle disconnect
    }
};

РЕДАКТИРОВАТЬ: Перечитывая свой вопрос, вы хотите, чтобы эти события происходили, пока вы отстранены, верно? Я не думаю, что это возможно.

Из документов :

Если ваше приложение активно, когда происходит событие вызова, система немедленно отправляет событие вашему обработчику. Однако события вызова также могут иметь место, пока ваше приложение приостановлено. Пока он приостановлен, ваше приложение не получает событий вызова. Когда ваше приложение возобновляет активное состояние, оно получает одно событие вызова для каждого вызова, который изменил состояние - независимо от того, сколько состояний изменяет вызов, который произошел, пока ваше приложение было приостановлено. Событие одиночного вызова, отправляемое вашему обработчику при возврате приложения в активное состояние, описывает состояние вызова в то время.

20
ответ дан 3 December 2019 в 15:34
поделиться

Если ваше приложение работает в фоновом режиме и имеет AVAudioSession, вы будете получать обратные вызовы на AVAudioSessionDelegate, сообщающие вам, что ваша AVAudioSession была прервана при получении телефонного звонка. AFAIK это вся информация, которую вы получаете.

8
ответ дан 3 December 2019 в 15:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: