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

11

我正在开发一个支持CarPlay的音乐应用程序。有没有一种方式可以确定应用程序是否已连接/断开与 Carplay 的连接?关于此问题,我找不到任何有用的文档。

非常感谢您提供任何洞察力或文档。

2个回答

0

我和你一样遇到了同样的问题,从文档中我没有找到直接判断CarPlay是否启动的方法。我使用的一个解决方法是利用MPPlayableContentDelegate来检测用户是否启动了CarPlay。

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 何时关闭。


0
在您的CPTemplateApplicationSceneDelegate实现中,当设备从CarPlay屏幕断开连接时,会调用此函数。请注意,如果用户只是将您的CarPlay应用最小化或切换到另一个应用程序,则不会调用该函数。
    func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene,
                                  didDisconnectInterfaceController interfaceController: CPInterfaceController) {
        self.interfaceController = nil
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接