美文网首页
iOS开发——锁屏监听

iOS开发——锁屏监听

作者: dongke | 来源:发表于2017-03-14 10:31 被阅读0次

第一步:AppDelegate.m 头部导入#import#define NotificationLock CFSTR("com.apple.springboard.lockcomplete")

#define NotificationChange CFSTR("com.apple.springboard.lockstate")

#define NotificationPwdUI CFSTR("com.apple.springboard.hasBlankedScreen")

第二步:在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法内加入

以下代码

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

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

第三步:在appDelege.m中加入新的方法(C语言的)

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

// 此处监听到屏幕解锁事件(锁屏也会掉用此处一次,锁屏事件要在上面实现)

}

}

第四步:如何在C语言函数内调用OC方法  ( C语言函数内没法使用self )

本例为了实现在appDelegate.m中通过self 调用一个方法(弹出手势解锁的方法)

本质是通过指针来实现

1. 声明一个全局变量,并赋nil

AppDelegate *appDelegate = nil;

2. 在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法内如下赋值:

appDelegate = self;

3.在刚才的锁屏监听的C语言函数内如下调用appDelegate OC方法,这样就不会因为self导致报错了

[appDelegate showGestureOrFinger];

相关文章

  • iOS开发——锁屏监听

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

  • iOS 关于自动锁屏

    关于iOS 开发关闭自动锁屏

  • IOS 监听锁屏

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

  • applicationProtectedDataWillBeco

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

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

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

  • iOS 监听手机息屏、锁屏

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

  • iOS 锁屏和息屏监听

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

  • iOS 截屏&长截屏

    截屏在 iOS 开发中经常用到,本篇文章讲的是监听用户截屏操作,并且获取截屏图片,如果当前是UIScrollVie...

  • 锁屏监听

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

  • iOS横竖屏开发(监听)

    项目涉及横屏竖屏都要开发的时候,并要设计两个UI; 所以监听横竖屏的变化的是必须的 - (void)viewWil...

网友评论

      本文标题:iOS开发——锁屏监听

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