【问题标题】:capture movements or keystrokes of a game like (Angry Bird) using touch screen of an iphone使用 iPhone 的触摸屏捕捉游戏的动作或击键,例如(愤怒的小鸟)
【发布时间】:2013-02-26 07:51:12
【问题描述】:

我基本上需要找出是否有一种方法可以使用 iPhone 的触摸屏捕捉诸如“愤怒的小鸟”等游戏的动作或击键并将它们保存到设备上的文件中。

我确定这些手机存在安全问题,不希望使用原生“按键记录”,但如果它是位于其他游戏之上的层,应该没问题

请让我有什么办法可以达到同样的效果。您的帮助将不胜感激。提前致谢

【问题讨论】:

  • 我非常怀疑你是否被允许在没有严重事件黑客攻击的情况下拦截任何应用程序的触摸。作为一个商业应用程序,我担心这是不可能的,但是在授予您 su 权限的设备上,我认为这是完全可能的。你可以设置一个守护进程来监控 Quartz 事件循环。
  • 嗨@CodaFi 感谢您的即时回复。您能否详细说明一下这个术语:“您可以设置一个守护进程来监视 Quartz 事件循环”。 ?

标签: iphone ios objective-c touchscreen keystroke


【解决方案1】:

您可以使用 MobileSubstrate 轻松完成您想要做的事情,MobileSubstrate 是 Jay Freeman 创建的一个非常强大的框架,允许您在运行时修改任何进程的几乎任何功能。 Dustin Howett 的构建环境 theos 可以用来代替 Xcode,它的 Logos 预处理器使所有这些看似复杂的恶作剧变得非常、非常简单的任务。 p>

这样的事情可以用非常少的代码来完成。

例子:

%hook UIApplication //Hooks into the UIApplication class.

- (void)sendEvent:(id)arg1{//Hook the sendEvent function, the function which handles all events passed to a UIApplication.

  if([arg1 isKindOfClass:%c(UITouchesEvent)]){//Make sure we're not processing other events, such as device rotation.

    for(UITouch *touch in [arg1 allTouches])
      NSLog(@"Touch recorded: %@", NSStringFromCGPoint([touch locationInView: [[UIApplication sharedApplication] keyWindow]]));

  }

  %orig;//Call the original function, so the app can still process the events, and we don't eat them all.

}

如你所见,其实很简单。

很遗憾,越狱设备是您唯一的选择。显然,您将无法在 App Store 中放置类似的内容。然而,Cydia 已经成为 iOS 的一个非常突出的部分,通过它获得成功与 App Store 上的产品一样容易,甚至更容易。

【讨论】:

    猜你喜欢
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多