2

根据苹果文档,在后台运行的应用程序无法接收回调,除了基于位置、VOIP、Newstand、音乐播放器或启用 APNS 的应用程序。在这种情况下如何接收连接状态回调?该应用程序将 AVAudioSession 实例用作:

try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, with:AVAudioSessionCategoryOptions.allowBluetooth)

并以如下方式收听通知:

NotificationCenter.default.addObserver(self,selector:#selector(handleRouteChange), name: .AVAudioSessionRouteChange,object: AVAudioSession.sharedInstance())

这在应用程序的启动中被调用。

4

1 回答 1

2

您可以使用bluetooth-central后台模式。根据背景模式文档

(...) 来自外围设备的新数据会导致系统唤醒应用程序,以便它可以处理数据。系统还会唤醒应用程序以处理附件连接和断开通知。

于 2018-04-10T10:19:10.570 回答