zoukankan      html  css  js  c++  java
  • iOS 锁屏判断

    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);

    }

  • 相关阅读:
    能组成多少个无重复数字且不为5的倍数的五位数有多少个?
    http与https
    观察者模式和发布/订阅模式的区别
    快速排序的最优时间复杂度是 O(nlogn)
    函数实现 composeFunctions(fn1,fn2,fn3,fn4)等价于fn4(fn3(fn2(fn1))
    vue双向绑定代码实现
    node历史版本下载
    阻止scroll冒泡
    中断或取消Promise链的可行方案
    从输入url到页面加载完成发生了什么?——前端角度
  • 原文地址:https://www.cnblogs.com/pocket-mood/p/4482833.html
Copyright © 2011-2022 走看看