- (void)registerAppforDetectLockState {
int notify_token;
notify_register_dispatch("com.apple.springboard.lockstate", ¬ify_token,dispatch_get_main_queue(), ^(int token) {
uint64_t state = UINT64_MAX;
notify_get_state(token, &state);
if(state == 0) {
NSLog(@"unlock device");
} else {
NSLog(@"lock device");
}
NSLog(@"com.apple.springboard.lockstate = %llu", state);
// UILocalNotification *notification = [[UILocalNotification alloc]init];
// notification.repeatInterval = NSCalendarUnitDay;
// [notification setAlertBody:@"Hello world!! I come becoz you lock/unlock your device :)"];
// notification.alertAction = @"View";
// notification.alertAction = @"Yes";
// [notification setFireDate:[NSDate dateWithTimeIntervalSinceNow:1]];
// notification.soundName = UILocalNotificationDefaultSoundName;
// [notification setTimeZone:[NSTimeZone defaultTimeZone]];
//
// [[UIApplication sharedApplication] presentLocalNotificationNow:notification];
});
}
需要
#import <notify.h>
另外三个系统通知
"com.apple.iokit.hid.displayStatus"
"com.apple.springboard.hasBlankedScreen"
"com.apple.springboard.lockcomplete"