Как можно проверить поступивший звонок, когда iOS приложение в бекграунде?

Мне необходимо обрабатывать звонок в приложении. Поступление звонка я проверяю в applicationWillResignActive с помощью
if(CTCallCenter().currentCalls != nil)
Это работает, если звонок прерывает выполнение приложения.
Но также мне хотелось бы, чтобы это работало и когда приложение запущено в бекграунде. Реально ли это сделать? Получается я должен все время работы приложения проверять на изменение именно этой переменной currentCalls. Пытался пользоваться ответами на stackoverflow, но ничего не помогло - ни семафоры, ни ожидание в потоке. Кто-нибудь сможет помочь разобраться?
  • Вопрос задан
  • 2386 просмотров
Решения вопроса 1
@Leshich Автор вопроса
Если кому-то интересно, я справился с задачей)

Нужно было просто воспользоваться callEventHandler'ом, он способен реагировать на событие звонка и выводить. А вот как сидеть в бекграунде - это совсем другой вопрос)

let callCenter = CTCallCenter()
func callEvent (call:CTCall!) {
println("Got into callEvent")
if (call.callState == CTCallStateConnected) { println("Connected") }
else if (call.callState == CTCallStateDialing) { println("Dialing") }
else if (call.callState == CTCallStateDisconnected) {println("Disconnected")}
else if (call.callState == CTCallStateIncoming) {println("Incoming call")}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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