本文介绍了如何检测 iPhone 上的屏幕锁定/解锁事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何检测 iPhone 上的屏幕锁定/解锁事件?当用户解锁它时,我想显示来自我的 iPhone 应用程序的通知警报.(就像 Android 中用于屏幕解锁的广播接收器一样.)
How can I detect screen lock/unlock events on the iPhone? When the user unlocks it, I want to show a notification alert from my iPhone app. (For Just like Broadcast Receiver for screen unlock in Android.)
推荐答案
看看这个,我想检测锁定/解锁事件,我通过达尔文通知解决了它.您可以通过 "com.apple.springboard.lockcomplete"
检测设备锁定时的事件.
Check this out, I wanted to detect the lock/unlock events, I solved it by Darwin notifications.You can detect the event when the device is locked by "com.apple.springboard.lockcomplete"
.
//call back
static void displayStatusChanged(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo)
{
// the "com.apple.springboard.lockcomplete" notification will always come after the "com.apple.springboard.lockstate" notification
NSString *lockState = (NSString*)name;
NSLog(@"Darwin notification NAME = %@",name);
if([lockState isEqualToString:@"com.apple.springboard.lockcomplete"])
{
NSLog(@"DEVICE LOCKED");
}
else
{
NSLog(@"LOCK STATUS CHANGED");
}
}
-(void)registerforDeviceLockNotif
{
//Screen lock notifications
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), //center
NULL, // observer
displayStatusChanged, // callback
CFSTR("com.apple.springboard.lockcomplete"), // event name
NULL, // object
CFNotificationSuspensionBehaviorDeliverImmediately);
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), //center
NULL, // observer
displayStatusChanged, // callback
CFSTR("com.apple.springboard.lockstate"), // event name
NULL, // object
CFNotificationSuspensionBehaviorDeliverImmediately);
}
这篇关于如何检测 iPhone 上的屏幕锁定/解锁事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!