2013-09-26 48 views
5

我想以编程方式触发远程控制事件,例如UIEventSubtypeRemoteControlTogglePlayPause。我记住的应用程序是一个语音遥控应用程序(即使它已经存在),它接收命令“Play”,它只是生成事件UIEventSubtypeRemoteControlTogglePlayPause。任何注册为此活动的第一响应者的应用程序都会获得它。即我的应用程序只是将语音转换为远程控制命令。以编程方式在iOS中发送远程控制事件

想法?

+0

您无法使用公共iOS API将远程控制事件发送到其他应用程序。除非您越狱,否则私有API甚至可能无法使用。如果你想要一个需要越狱的答案,你应该在你的问题中提及。 –

+0

不,它不应该需要越狱。如果我无法发送远程控制事件 - 关于如何为Apple TV制作“远程”应用程序的指针?我将如何去建立一个完全相同的应用程序? –

+0

远程应用程序不需要将远程控制事件发送到本地设备上的其他应用程序。它通过WiFi将消息发送给AppleTV。您还可以使用Bonjour和普通的UDP和TCP套接字将消息发送到WiFi上的其他设备。 –

回答

2

以编程方式生成UIEvent s是不可能的。

您可以通过使用私有API(谷歌synthesize UIEvent)。一些测试框架可以做到这一点。另外,为了测试,您可以将Apple的UI Automation框架注入到应用程序中,并使用其方法生成事件(主要是触摸事件,github上提供的标头)。

但是,合成事件是在Appstore应用程序中无法做到的事情。如果你需要这样做,这是一个糟糕的设计。