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 缺少元素的主要内容,如果未能解决你的问题,请参考以下文章

在选项卡式应用程序中更改选项卡后运动功能不起作用

AVI格式的视频文件播放不了,说缺少某些流,说没有找到AVI Splitter::Stream 00

2018.2.23-24 终章 subtype

总和计数为mysql中的一列

sql type subtype 统计

JAXB - XML Schema Types, Defining Subtypes