2016-08-01 32 views
3

在我的一個應用程序中,它具有播放聲音的功能,我成功​​地取得了成功。即使應用程序正在運行(前臺狀態)並且我們收到來電,應用程序音樂也會停止並在呼叫斷開連接時再次恢復。如何獲得後臺狀態下的來電/去電事件

現在真正的問題在這裏。當應用程序進入後臺狀態時,我們沒有收到任何來電/去電事件。在後臺模式下如果音樂在我的應用程序內播放,並且我們收到任何來電,則應用程序音樂會自動停止,但不會在iPhone音樂應用程序斷開連接時再次恢復。

這是iOS的限制還是我們可以實現?

注:我不是尋找一個越獄設備的任何解決方案或企業應用

+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 

    } 

} 

不要忘記在背景模式這種切換。並在背景中執行某些操作,就像接收位置一樣。