Могу ли я наблюдать входящий звонок и исходящий звонок в фоновом режиме?

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

Итак, как я могу обнаружить события вызова, такие как входящий вызов и исходящий вызов в фоновом режиме? Я работаю над рамой CallKit с iOS 10 и XCode 8. Я обнаружил, что основная инфраструктура телефонии устарела в iOS 10.

Я использую шаблон CXCallObserverDelegate для наблюдения за вызовом.

Я хочу рассчитать длительность вызова входящих и исходящих вызовов во время вызова.

Ответ 1

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

Да, вы можете обнаружить вызов, но только если ваше приложение работает на переднем плане. Для этого вы можете использовать Core Telephony Framework.

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

CTCallCenter позволит вам обнаружить любые запущенные или уже запущенные вызовы.

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

оригинальный вопрос