Carplay 连接/断开连接事件?

Posted

技术标签:

【中文标题】Carplay 连接/断开连接事件?【英文标题】:Carplay connect/disconnect events? 【发布时间】:2018-10-09 09:32:36 【问题描述】:

有没有办法在应用中检测手机是否使用 Carplay 与汽车连接/断开连接? 似乎找不到任何有关它的文档。 我正在考虑一些我可以监控的系统事件。

【问题讨论】:

【参考方案1】:

您是否遵循了这些步骤?

    将相应记录添加到项目的权利文件中:com.apple.developer.carplay-maps 类型为 Boolean,值为 YES Request from Apple corresponding permission 让您的 AppDelegate 确认CPApplicationDelegate 协议

    实现下一个方法:

    /**
     The CarPlay screen has connected and is ready to present content.
    
     Your app should create its view controller and assign it to the @c rootViewController property
     of this window.
    
     @note It is the responsibility of the delegate to maintain a reference to the interface controller beyond the scope of this method.
     */
    - (void)application:(UIApplication *)application didConnectCarInterfaceController:(CPInterfaceController *)interfaceController toWindow:(CPWindow *)window;
     /**
     The CarPlay screen has disconnected.
      */
    - (void)application:(UIApplication *)application didDisconnectCarInterfaceController:(CPInterfaceController *)interfaceController fromWindow:(CPWindow *)window;
    

请检查Documentation link 和this WWDC 2018 Carplay Session

【讨论】:

请注意,这仅适用于 CarPlay 导航应用。音频应用不需要关心连接状态。 @DrMickeyLauer 我正在构建一个音频应用程序,您是否知道音频应用程序的等效调用?我试图找到一个加载数据的好地方/ @MiMo 没有什么可以阻止你在applicationDidFinishLaunching 中无条件地这样做,如果没有 CarPlay,它就不会被使用。再说一次,如果你绝对坚持,一个有价值的方法可能是监听音频输出路由的变化——也许这将在 CarPlay 的连接/断开时触发。 @DrMickeyLauer 加载我的数据包括对 api 的调用、解析,我不想在每个 applicationDidFinishLaunch 上都这样做,因为没有 CarPlay 的应用永远不需要 applicationDidFinishLaunch 的数据。 @Mimo:我明白了,我同意。请针对 Apple 错误跟踪器打开一个功能愿望,CarPlay 音频应用程序应该得到与地图应用程序相同的正确(断开)连接回调。

以上是关于Carplay 连接/断开连接事件?的主要内容,如果未能解决你的问题,请参考以下文章

qjsonrpc 中的客户端连接/断开连接事件

我需要一个事件来检测 Internet 连接/断开连接

Ktor sse 客户端断开连接

Socket.io断开事件错误地为其他用户触发,然后再次连接

如何检测win32上的datacard连接和断开事件?

Hazelcast 客户端与整个集群断开连接