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

Van*_*n P 8 ios carplay swift ios14

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

非常感谢任何见解或文件。

小智 0

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

func playableContentManager(_ contentManager: MPPlayableContentManager, didUpdate context: MPPlayableContentManagerContext)
Run Code Online (Sandbox Code Playgroud)

您可以在第一次调用时将布尔值设置为 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
        }
    }

Run Code Online (Sandbox Code Playgroud)

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