iOS 监听手机息屏、锁屏

作者: MQ_Twist | 来源:发表于2020-11-06 15:19 被阅读0次

集中起来的意志,能够击穿顽石。

前言

视图的生命周期,App的生命周期这已经老生常谈了。手机息屏如果做IM的话会用到,但是监听手机锁屏这个用的有点少了,这不,有可能会用到的就一定会用到。

正文

手机自动感应息屏,以及息屏监听。

- (void)observeSensor {
    //靠近听筒自动息屏
    [[UIDevice currentDevice] setProximityMonitoringEnabled:YES];
    //设置监听
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(sensorStateChange:)
                                                 name:UIDeviceProximityStateDidChangeNotification
                                               object:nil];
}

通知

- (void)sensorStateChange:(NSNotificationCenter *)notification {
    if ([[UIDevice currentDevice] proximityState] == YES) {
        NSLog(@">>>屏幕熄灭");
    }else{
        NSLog(@">>>屏幕亮起");
    }
}

监听手机锁屏

  • 方法一

在类前面声明

#define NotificationLock CFSTR("com.apple.springboard.lockcomplete")
#define NotificationChange CFSTR("com.apple.springboard.lockstate")
#define NotificationPwdUI CFSTR("com.apple.springboard.hasBlankedScreen")

static void screenLockStateChanged(CFNotificationCenterRef center, void * observer,CFStringRef name, const void * object, CFDictionaryRef userInfo) {
    NSString *lockstate = (__bridge NSString *)name;
    if ([lockstate isEqualToString:(__bridge  NSString *)NotificationLock]) {
        NSLog(@">>>locked.");
    } else {
        NSLog(@">>>lock state changed.");
    }
}

使用

CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, screenLockStateChanged, NotificationLock, NULL,
CFNotificationSuspensionBehaviorDeliverImmediately);

CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, screenLockStateChanged, NotificationChange, NULL,
CFNotificationSuspensionBehaviorDeliverImmediately);

特别的:这是私有API,会被拒的
知道其它方法的小伙子积极留言哦

相关文章

  • iOS 监听手机息屏、锁屏

    集中起来的意志,能够击穿顽石。 前言 视图的生命周期,App的生命周期这已经老生常谈了。手机息屏如果做IM的话会用...

  • iOS 锁屏和息屏监听

    锁屏和息屏监听 一些说明如下方法是监听 传感器(红外感应) YES开启 NO关闭[[UIDevice curr...

  • IOS 监听锁屏

    小编最近在开发一项功能,需要监听APP进入后台的时候通知用户回到APP,但是锁屏的时候不用发通知,所以要区分用户点...

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

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

  • applicationProtectedDataWillBeco

    在做iOS监听开屏锁屏时,网上查到的资料说,苹果推荐使用applicationProtectedDataWillB...

  • 如何让Android设备实现息屏显示

    前言 什么是息屏显示?息屏显示就是手机在息屏状态下,屏幕上会显示当前时间、日期信息,无需点亮手机屏幕即可查看。息屏...

  • iOS开发——锁屏监听

    第一步:AppDelegate.m 头部导入#import#define NotificationLock CFS...

  • H5监听浏览器被切换到后台或者手机锁屏

    1.visibilitychange可以监听手机锁屏和浏览器切换到后台的动作。

  • iOS 锁屏问题

    iOS实现关闭/开启自动锁屏1 不自动锁屏[UIApplication sharedApplication]....

  • 锁屏监听

    方法一: 导入头文件和宏定义 // AppDelegate.m#import #define Notificati...

网友评论

    本文标题:iOS 监听手机息屏、锁屏

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