【问题标题】:Simulating system-wide touches in iOS 7在 iOS 7 中模拟系统范围的触摸
【发布时间】:2013-09-30 11:56:32
【问题描述】:

GSSendEvent 不再适合我了。

即使使用GSEventRegisterEventCallBack 订阅回调函数也不会触发触摸事件,[UIEvent _gsEvent] 返回 NULL。

发生了什么?

【问题讨论】:

  • 这些 API 很可能受到权利保护。但是,我不知道模拟系统范围触摸的替代方法。

标签: ios ios7 jailbreak iphone-privateapi


【解决方案1】:

现在 iOS 使用 IOHIDEvent(在 IOKit.framework 中)进行触摸事件。

backboardd 创建触摸事件并发送到 SpringBoard, SpringBoard 通过 UIApplicationHandleEventQueue 接收它

无论如何,如果你有越狱的设备并想模拟触摸, 只需使用 SimulateTouch 库。 你可以从 Bigboss 的 repo 下载它,API 信息在这里http://api.iolate.kr/simulatetouch/

另外,这是开源的。 https://github.com/iolate/SimulateTouch

【讨论】:

  • 是否有非越狱替代方案?我也在stackoverflow.com/questions/19471572/… 上问过这个问题
  • @BenDowling 如果你可以获得顶级应用程序的任务端口(参见 SimulateTouch 的源代码 - SimulateTouch.mm),我想你可以。但我不知道如何从应用程序中获取它。
  • 为什么只输入密钥提交评论! :( 无论如何,[CAWindowServer serverIfRunning] 仅在 backboardd 上工作。[CAWindowServer server] 工作广泛,但无法获取任务端口..
  • 哦,我的错..似乎无法模拟甚至获取任务端口.. :(
  • 并用于发送事件,例如旧的 kGSEventMenuButtonDown?
猜你喜欢
  • 1970-01-01
  • 2013-10-28
  • 1970-01-01
  • 2012-05-30
  • 1970-01-01
  • 2014-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多