美文网首页iOS开发iOS 开发技巧精华
如何检测 iOS 设备解锁/锁屏?

如何检测 iOS 设备解锁/锁屏?

作者: 张嘉夫 | 来源:发表于2017-06-17 19:34 被阅读622次
//回调
static void displayStatusChanged(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo)
{
    // "com.apple.springboard.lockcomplete" 通知总是接在 "com.apple.springboard.lockstate" 通知后面
    CFStringRef nameCFString = (CFStringRef)name;
    NSString *lockState = (NSString*)nameCFString;
    NSLog(@"Darwin notification NAME = %@",name);

    if([lockState isEqualToString:@"com.apple.springboard.lockcomplete"])
    {
        NSLog(@"锁屏");
        //应用逻辑
    }
    else
    {
        NSLog(@"锁屏状态改变");
        //应用逻辑
    }
}

-(void)registerforDeviceLockNotif
{
    //锁屏通知
    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);
}

注意:“com.apple.springboard.lockcomplete” 通知总是会接在 “com.apple.springboard.lockstate” 后面

相关文章

  • 如何检测 iOS 设备解锁/锁屏?

    注意:“com.apple.springboard.lockcomplete” 通知总是会接在 “com.appl...

  • iOS和Android代码中实现禁止手机休眠

    (一)iOS平台默认,所有iOS设备在过了设定的休眠时间后,都会自动锁屏。如果你的应用不希望iOS设备自动锁屏,需...

  • 设计闲话 #12: 通知中心,Widget,iOS 10 与「主

    iOS 10 对锁屏界面作出了重大改动——滑动解锁改为按下 Home 键解锁,左右滑动锁屏界面分别切换到 Widg...

  • Android 手势密码锁的使用细说

    监听屏幕锁屏和解锁事件 启动时进行检测 基类中全局进行监听 构造广播监听锁屏截屏事件 应用Application里...

  • 设置休闲时钟

    默认情况下所有iOS设备,在过了设定的休眠时间后都会自动锁屏。如果你的应用不希望iOS设备自动锁屏,可以使用以下方...

  • iOS 休闲时钟(禁止锁屏)

    默认情况下所有iOS设备,在过了设定的休眠时间后都会自动锁屏。如果你的应用不希望iOS设备自动锁屏,可以使用以下方...

  • iOS硬件相关开发

    心跳之旅—?—iOS用手机摄像头检测心率(PPG)【iOS开发】网易云音乐锁屏界面效果实现 DJI SDK iOS...

  • 指纹识别需求拓展(页面交互设计)

    需求 1、可录入10个指纹 2、每个指纹可以在锁屏状态下解锁设备 3、每个指纹支持解锁的同时开启一个指定应用 分析...

  • 我赌上满腔热血不信你不投降

    双击亮屏,解锁,一键锁屏;双击亮屏,解锁,一键锁屏…… “你干嘛呢,手机和你有仇吗”好友娇娇放下手中的酸奶把我的手...

  • 点亮,解锁,锁屏,点亮,解锁,锁屏,末一遍又一遍的把弄着手机,好像随时会有什么发生,但每次锁屏后,又把手机丢到一边...

网友评论

  • SpursGo:老哥 不这么写NSString *lockState = (__bridge NSString*)nameCFString; 不报错么
    af3fcf3cee36:@SpursGo 还好你指到这点,要不然报错了

本文标题:如何检测 iOS 设备解锁/锁屏?

本文链接:https://www.haomeiwen.com/subject/lsjbqxtx.html