2016-08-01 4 views
3

В одном из моих приложений у него есть функция воспроизведения звука, которое я достиг успешно. Несмотря на то, что когда приложение работает (состояние переднего плана), и мы получили входящий вызов, музыка приложения прекращается и возобновляется снова, когда звонок отключается.Как получить входящий/исходящий вызов в фоновом состоянии

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

Это ограничение iOS или мы можем достичь этого?

Примечание: Я не ищу для любого решения для Jailbreak устройств или Enterprise приложений

+0

Любое решение, которое вы нашли?, Если да, могу ли я попросить вас его опубликовать? –

+0

Нет Я не нашел для этого решения. – milanpanchal

+0

Тогда как вы продвинулись? –

ответ

1

Вы пытались создать колл-центр и назначить блок обработчика в классе AppDelegate? Следующее должно работать.

import UIKit 
import CoreLocation 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 
    let callCenter: CTCallCenter = CTCallCenter() 

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

     window = UIWindow(frame: UIScreen.mainScreen().bounds) 
     window?.rootViewController = ViewController() 
     window?.makeKeyAndVisible() 

     callCenter.callEventHandler = { 

      (call: CTCall!) in 

       switch call.callState { 

        case CTCallStateConnected: 

         print("CTCallStateConnected") 

        case CTCallStateDisconnected: 

         print("CTCallStateDisconnected") 

        case CTCallStateIncoming: 

         print("CTCallStateIncoming") 

        default: 

         print("default") 

       } 

     } 

     return true 

    } 

} 

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