Swift - 如何在iOS应用程序中检测CarPlay的连接/断开连接状态?



我正在开发一款支持CarPlay的音乐应用程序。有没有办法识别应用程序是否与Carplay连接/断开?我找不到任何有用的文档。

如有任何见解或文件,我们将不胜感激。

我和您遇到了同样的问题,没有直接的方法来判断CarPlay是否是从我在文档中阅读的内容开始的。我用来检测用户是否启动CarPlay的一种变通方法是使用MPPlayableContentDelegate的

func playableContentManager(_ contentManager: MPPlayableContentManager, didUpdate context: MPPlayableContentManagerContext)

您可以在第一次调用时将布尔值设置为true,这样您就可以知道这是否是第一次。我知道这个解决方案不太好,但它对我很有效。例如,当用户第一次打开CarPlay时,我会触发一个跟踪事件来跟踪。我不确定你的用例是什么,所以这个解决方案可能不适合你。

这里有一些代码,注意布尔值:

class CarPlayContentManager: NSObject, MPPlayableContentDataSource, MPPlayableContentDelegate {
private var isSetup = false
...
func playableContentManager(_ contentManager: MPPlayableContentManager, didUpdate context: MPPlayableContentManagerContext) {

if !isSetup {
// Do some stuff that only happens when CarPlay is setup for the first time
isSetup = true
}
}

仅供参考-我不知道如何检测CarPlay何时关闭。

CPTemplateApplicationSceneDelegate实现中,当设备与CarPlay屏幕断开连接时,会调用此函数。请注意,如果用户只是最小化您的CarPlay应用程序或切换到另一个应用程序,则不会调用它。

func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene,
didDisconnectInterfaceController interfaceController: CPInterfaceController) {
self.interfaceController = nil
}

最新更新