gpt4 book ai didi

ios - 如何在后台状态下获取来电/去电事件

转载 作者:搜寻专家 更新时间:2023-10-31 22:59:37 24 4
gpt4 key购买 nike

在我的一个应用程序中,它具有播放声音的功能,我已成功实现。即使当应用程序正在运行(前台状态)并且我们收到来电时,应用程序音乐也会停止并在通话断开时再次恢复。

现在真正的问题来了。当应用程序进入后台状态时,我们不会收到任何来电/去电事件。在后台模式下如果音乐正在我的应用程序中播放并且我们接到任何来电,则应用程序音乐会自动停止但在通话断开时不会再次恢复,这与 iPhone 音乐应用程序不同。

这是 iOS 的限制还是我们可以实现?

注意:我不是在寻找越狱设备或企业应用程序的任何解决方案

最佳答案

您是否尝试过在 AppDelegate 类中创建调用中心并分配处理程序 block ?以下必须工作。

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

}

}

不要忘记为此打开背景模式。并在后台执行某些操作,例如接收位置。

关于ios - 如何在后台状态下获取来电/去电事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38696151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com