在iOS模拟器中切换CarPlay和常规窗口



我正在测试一个具有一些CarPlay功能的应用程序。我通过使用

改变默认选项来激活模拟器中的CarPlay窗口
defaults write com.apple.iphonesimulator CarPlay -bool YES

在启动CarPlay窗口时工作完美,无论是当模拟器在调试中编译应用程序后自动启动,还是当应用程序已经在模拟器中运行时,我通过Hardware -> External Displays -> CarPlay手动打开CarPlay窗口。问题是,在这两种情况下,主模拟器窗口都变暗了(在显示CarPlay溅屏之后,类似于上图中在手机上看到的)。

现在,我不知道现实生活中的行为应该是什么,但我不能简单地在CarPlay窗口上执行"关闭"行为并切换回主模拟器窗口,以便它显示应用程序(或其他任何事情)。目前,如果我回到模拟器菜单并选择Hardware -> External Displays -> None, CarPlay窗口就会消失,但主模拟器窗口仍然是黑色的。

所以,我的问题是,如何在使用模拟器时模拟CarPlay"关机"行为,以及如何在主模拟器窗口中返回操作系统?从更专注于开发的角度来看,我也想确切地知道,当CarPlay关闭时,我是否以及如何检测媒体播放器是否"关闭",或者更具体地说,是否有一种方法可以编程地观察CarPlay的媒体控制功能变得"不可用"的事件。

我只能部分回答你的问题。要返回应用程序本身或操作系统主窗口,只需按(或模拟按Shift+Cmd+H) home键。

CarPlay "关机"行为?没有这种事。

如果用户断开与汽车的连接- UI消失。

如果你想在CarPlay会话中杀死应用程序-只需将iPhone模拟器重新聚焦并解锁它(通过点击Home键= Cmd+Shift+H)。那么iPhone应该可以工作了。你应该会看到应用程序关闭。

如果你关闭CarPlay的模拟器窗口,一个信号被触发到CPApplicationDelegate。

你需要你的AppDelegate遵从这个方法:

func application(_ application: UIApplication, didDisconnectCarInterfaceController interfaceController: CPInterfaceController, from window: CPWindow)

这应该与CarPlay在真实设备上被关闭的情况相同。

最新更新