【发布时间】:2013-03-26 04:43:32
【问题描述】:
我正在尝试在我的应用程序中获取触摸事件。所以我使用 IOHIDFamily 回调来获取事件。我的代码是这样的:
void handle_event(void* target, void* refcon, IOHIDServiceRef service, IOHIDEventRef event)
{
printf("Received event of type %2d from service %p.\n",
IOHIDEventGetType(event), service);
}
- (void)viewDidLoad
{
[super viewDidLoad];
void *ioHIDEventSystem = IOHIDEventSystemClientCreate(kCFAllocatorDefault);
IOHIDEventSystemClientScheduleWithRunLoop(system, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
IOHIDEventSystemClientRegisterEventCallback(system, handle_event, NULL, NULL);
CFRunLoopRun();
}
执行时出错:
IOHIDEventSystemClientScheduleWithRunLoop(system, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
IOKit`IOHIDEventSystemClientScheduleWithRunLoop:
...
0x32f8fd14: cmp.w r10, #0
0x32f8fd18: strd r10, r11, [r4, #116] 0x32f8fd1c: beq 0x32f8fdac ; IOHIDEventSystemClientScheduleWithRunLoop + 168
0x32f8fd1e: ldr r1, [r4, #96]
0x32f8fd20:cbz r1,0x32f8fd2a; IOHIDEventSystemClientScheduleWithRunLoop + 38
0x32f8fd22: 移动 r0, r10
...
我是否以错误的方式使用 IOHIDFamily?
【问题讨论】:
标签: ios objective-c jailbreak iphone-privateapi iokit