UIEventSubtype 缺少元素
Posted
技术标签:
【中文标题】UIEventSubtype 缺少元素【英文标题】:UIEventSubtype missing elements 【发布时间】:2012-12-07 17:27:11 【问题描述】:枚举 UIEventSubtype(ios UIKit 框架)包含诸如播放、暂停、下一个、查找等事件。然而,iPod Access 协议包含许多其他事件,例如选择、向上、向下和返回(想想带有 clickwheel 的 iPod )。 iOS 上的 iPod 应用可以接收这些其他事件并做出相应的响应(在播放列表中向上/向下/向后移动选择),但开发者应用似乎无法访问这些控件。
除了自己打开/dev/tty.iap
端口(或向Apple 提交错误报告并等待)之外,有没有人知道在iOS 应用程序中接收这些额外事件的方法(用于越狱)?也许有一个私有框架有我正在寻找的东西?我查看了 IAP 框架,但没有发现任何有趣的东西。
【问题讨论】:
【参考方案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
。以上是关于UIEventSubtype 缺少元素的主要内容,如果未能解决你的问题,请参考以下文章