iPhone在Darwin层上建立Notification监听的方法
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),//center
NULL, // observer
hasBlankedScreen,// callback
CFSTR("com.apple.springboard.lockstate"),// event name
NULL, // object
CFNotificationSuspensionBehaviorDeliverImmediately);
回调函数可以这样写:
static void hasBlankedScreen(CFNotificationCenterRef center,void *observer,CFStringRef name,constvoid *object, CFDictionaryRef userInfo)
{
NSString* notifyName = (__bridgeNSString*)name;
NSLog(@"notify name:%@",notifyName);
}
该监听方法可以实现很多系统事件或自定义事件的捕获,比如本次我们监听的事件名:com.apple.springboard.lockstate,就是用来监听屏幕的上锁和打开。
初步确定该方法需要在越狱手机上使用,如有新的了解,会继续更新