Задать вопрос

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

Мне необходимо обрабатывать звонок в приложении. Поступление звонка я проверяю в applicationWillResignActive с помощью
if(CTCallCenter().currentCalls != nil)
Это работает, если звонок прерывает выполнение приложения.
Но также мне хотелось бы, чтобы это работало и когда приложение запущено в бекграунде. Реально ли это сделать? Получается я должен все время работы приложения проверять на изменение именно этой переменной currentCalls. Пытался пользоваться ответами на stackoverflow, но ничего не помогло - ни семафоры, ни ожидание в потоке. Кто-нибудь сможет помочь разобраться?
  • Вопрос задан
  • 2388 просмотров
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    iOS-разработчик
    10 месяцев
    Далее
  • LearnQA
    Автоматизатор мобильных приложений
    9 недель
    Далее
  • Skillbox
    Middle-разработчик игр на Unity
    3 месяца
    Далее
Решения вопроса 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")}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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