如何以编程方式在 applewatch 上唤醒 iphone

How to wake iphone on applewatch programmatically

我的场景是在applewatch上控制iphone音乐播放器。就像 applewatch music glance 会做的一样。该项目将是 iphone 应用程序、手表应用程序和手表扩展程序。但是,即使我的 iphone 应用程序未激活,我也希望它能够正常工作。我知道 iphone 应用何时处于活动状态,我可以使用 wcsession 和 sendMessage 来控制 iphone 上的音乐。但是,当 iphone 应用未激活时。我不知道我应该怎么做才能完成工作。

另外一件事,我不明白 iphone 应用程序在不活动时如何工作。它是否需要先处于活动状态才能完成这些工作,或者它永远不会真正处于活动状态以便它仍然可以工作?

您只需配置您的应用程序以响应远程控制事件。

远程控制事件 远程控制事件是为控制媒体而接收的任何事件。例如,控制中心可用的 iTunes pause/play/next/previous 按钮,或耳机上 play/pause 按钮的远程控制事件。

Here 是关于该主题的教程。

那么你的watch glance就可以控制Apps的音频了。

使用 Watch OS2 和 iOS9 的当前 API,无法重写与正在播放的 glance 相似的 glance。

使用它在后台从您的手表套件应用中唤醒您的 iPhone 应用:

来自 https://developer.apple.com/library/prerelease/watchos/documentation/General/Conceptual/AppleWatch2TransitionGuide/UpdatetheAppCode.html

交互式消息模式

sendMessage:replyHandler:errorHandler:

sendMessageData:replyHandler:errorHandler:

使用此模式可以立即将数据发送到对应的应用程序。如果您不想要响应,您可以为 replyHandler 参数指定 nil。 在调用此方法之前,必须可以访问对端应用程序。 iOS 应用程序始终被认为是可访问的,并且从您的 Watch 应用程序调用此方法会根据需要在后台唤醒 iOS 应用程序。 Watch 应用程序仅在安装且 运行 时才被视为可访问。 数据立即传输,消息按发送顺序排队和传递。