Sie können das IOHID-Zeug in IOKit verwenden, um die x, y-Koordinaten zu erhalten.
#include <IOHIDEventSystem.h>
IOHIDEventSystemClient erstellen:
void *ioHIDEventSystem = IOHIDEventSystemClientCreate(kCFAllocatorDefault);
Register Rückruf:
IOHIDEventSystemClientScheduleWithRunLoop(ioHIDEventSystem, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
IOHIDEventSystemClientRegisterEventCallback(ioHIDEventSystem, handle_event, NULL, NULL);
austragen Rückruf:
IOHIDEventSystemClientUnregisterEventCallback(ioHIDEventSystem, handle_event, NULL, NULL);
IOHIDEventSystemClientUnscheduleWithRunLoop(ioHIDEventSystem, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
Rückruf:
void handle_event (void* target, void* refcon, IOHIDServiceRef service, IOHIDEventRef event) {
if (IOHIDEventGetType(event)==kIOHIDEventTypeDigitizer){
IOHIDFloat x=IOHIDEventGetFloatValue(event, (IOHIDEventField)kIOHIDEventFieldDigitizerX);
IOHIDFloat y=IOHIDEventGetFloatValue(event, (IOHIDEventField)kIOHIDEventFieldDigitizerY);
int width = [[UIScreen mainScreen] bounds].size.width;
int height = [[UIScreen mainScreen] bounds].size.height;
NSLog(@"click : %f, %f", x*width, y*height) ;
}
}
Sie können dies auch überprüfen: IOHIDEventSystemCreate on iOS6 failed. Hoffe, das hilft.
EDIT: Bitte sehen Sie das Ergebnis aus dem Protokoll. Getestet auf iPhone 4 und 5.
void handle_event (void* target, void* refcon, IOHIDServiceRef service, IOHIDEventRef event) {
NSLog(@"handle_event : %d", IOHIDEventGetType(event));
if (IOHIDEventGetType(event)==kIOHIDEventTypeDigitizer){
IOHIDFloat x=IOHIDEventGetFloatValue(event, (IOHIDEventField)kIOHIDEventFieldDigitizerX);
IOHIDFloat y=IOHIDEventGetFloatValue(event, (IOHIDEventField)kIOHIDEventFieldDigitizerY);
NSLog(@" x %f : y %f", x, y);
//2013-03-28 10:02:52.169 MyIOKit[143:907] handle_event : 11
//2013-03-28 10:02:52.182 MyIOKit[143:907] x 0.766754 : y 0.555023
}
}
Vielleicht könnte Ihnen helfen http://stackoverflow.com/questions/8303235/is-it-possible-to-capture-touch-events-in-the-background- on-a-jailbroken-ios-dev. Suchen Sie auch nach 'GSEvents' – Rog