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 连接/断开连接事件?的主要内容,如果未能解决你的问题,请参考以下文章