【问题标题】:UIEventSubtype missing elementsUIEventSubtype 缺少元素
【发布时间】:2012-12-07 17:27:11
【问题描述】:

枚举 UIEventSubtype(iOS UIKit 框架)包含诸如播放、暂停、下一个、查找等事件。然而,iPod Access 协议包含许多其他事件,例如选择、向上、向下和返回(想想带有 clickwheel 的 iPod )。 iOS 上的 iPod 应用可以接收这些其他事件并做出相应的响应(在播放列表中向上/向下/向后移动选择),但开发者应用似乎无法访问这些控件。

除了自己打开/dev/tty.iap 端口(或向Apple 提交错误报告并等待)之外,有没有人知道在iOS 应用程序中接收这些额外事件的方法(用于越狱)?也许有一个私有框架有我正在寻找的东西?我查看了 IAP 框架,但没有发现任何有趣的东西。

【问题讨论】:

    标签: ios jailbreak iphone-privateapi external-accessory uievent


    【解决方案1】:

    @Victor Ronin 的想法是正确的,在 Private Framework iPodUI 中我发现了一个类 IUAccessoryEventHandler 包含类似

    的方法
    - (void)handleDownArrowEvent; 
    - (void)handleUpArrowEvent
    - (void)handleSelectEvent
    

    当我通过 Theos 调整连接到它们并插入日志记录详细信息时,我能够看到这些方法是在外部设备发送命令时被调用的方法。

    更新:不幸的是,the iPhone Wiki 表示,iPodUI 框架仅在 iOS 5 和 6 中可用。不确定这些方法是否或在哪里仍然可用。

    【讨论】:

      【解决方案2】:

      我没有现成的答案,但是由于您是在越狱设备上执行此操作,因此您可以使用移动基板将代码注入 iPod 应用程序,您可以覆盖 UIApplication sendEvent 以查看它接收到的所有事件(包括选择、向上、向下等)。

      【讨论】:

      • 谢谢,这是个好主意。有机会我会试一试(很可能是明年)。
      • 终于有机会试试这个了。做了一个简单的钩子,当sendEvent 被调用时,它只写到系统日志。不幸的是,它只针对已经可用于 3rd 方应用程序的 IAP 事件调用,而不是我希望访问的事件(选择、向上、向下和返回)。我猜这些是在其他地方处理的。不过还是谢谢!
      • 你的想法是对的,方法只是在iPodUI,而不是通常的UIApplication
      猜你喜欢
      • 2012-04-24
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多