2013-09-26 47 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應用程序中無法做到的事情。如果你需要這樣做,這是一個糟糕的設計。