博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 锁屏判断
阅读量:5251 次
发布时间:2019-06-14

本文共 2073 字,大约阅读时间需要 6 分钟。

iOS 锁屏判断

 

应用程序的单例类对象中得到应用程序委托的对象 

UIApplicationDelegate* myDelegate = [[UIApplication sharedApplication] delegate];

 

UIApplication 接收到所有的系统事件和生命周期事件时,都会把事件传递给UIApplicationDelegate进行处理,对于用户输入事件,则传递给相应的目标对象去处理。

 

- (void)applicationWillResignActive:(UIApplication *)application 

   通知委托应用程序将进入非活动状态,在此期间,应用程序不接收消息或事件。

这个方法在用户锁住屏幕时,也会调用。

 

与之相适应的是应用程序重新被用户打开时的委托 方法。另外常用的就是内存不足的系统警告,此时会调用应用程序委托类的applicationDidReceiveMemoryWarning()方法, 然后我们就可以试着释放一些内存了。

 

 

CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, updateEnabled, CFSTR("com.apple.iokit.hid.displayStatus"), NULL, CFNotificationSuspensionBehaviorDeliverImmediately);

    

    // 1状态

    CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, lockComplete, CFSTR("com.apple.springboard.lockcomplete"), NULL, CFNotificationSuspensionBehaviorDeliverImmediately);

    // 2状态

    CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, lockState, CFSTR("com.apple.springboard.lockstate"), NULL, CFNotificationSuspensionBehaviorDeliverImmediately);

 

 

static void updateEnabled(CFNotificationCenterRef center, void* observer, CFStringRef name, const void* object, CFDictionaryRef userInfo) {

    uint64_t state;

    int token;

    notify_register_check("com.apple.iokit.hid.displayStatus", &token);

    notify_get_state(token, &state);

    notify_cancel(token);

    NSLog(@"锁屏状态:%llu",state);

}

 

static void lockComplete(CFNotificationCenterRef center, void* observer, CFStringRef name, const void* object, CFDictionaryRef userInfo) {

    uint64_t state;

    int token;

    notify_register_check("com.apple.springboard.lockcomplete", &token);

    notify_get_state(token, &state);

    notify_cancel(token);

    NSLog(@"lockComplete状态:%llu",state);

}

 

static void lockState(CFNotificationCenterRef center, void* observer, CFStringRef name, const void* object, CFDictionaryRef userInfo) {

    uint64_t state;

    int token;

    notify_register_check("com.apple.springboard.lockstate", &token);

    notify_get_state(token, &state);

    notify_cancel(token);

    NSLog(@"lockState状态:%llu",state);

}

转载于:https://www.cnblogs.com/pocket-mood/p/4482833.html

你可能感兴趣的文章
ViewPager的onPageChangeListener里面的一些方法参数:
查看>>
Jenkins关闭、重启,Jenkins服务的启动、停止方法。
查看>>
CF E2 - Array and Segments (Hard version) (线段树)
查看>>
Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化
查看>>
SIGPIPE并产生一个信号处理
查看>>
CentOS
查看>>
Linux pipe函数
查看>>
java equals 小记
查看>>
爬虫-通用代码框架
查看>>
2019春 软件工程实践 助教总结
查看>>
YUV 格式的视频呈现
查看>>
Android弹出框的学习
查看>>
现代程序设计 作业1
查看>>
在android开发中添加外挂字体
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
多线程实现资源共享的问题学习与总结
查看>>
Learning-Python【26】:反射及内置方法
查看>>
torch教程[1]用numpy实现三层全连接神经网络
查看>>
java实现哈弗曼树
查看>>
转:Web 测试的创作与调试技术
查看>>