iPhone的锁屏监测分为两种方式监听:

1. 程序在前台,这种比较简单。直接使用Darwin层的通知就可以了:
#import <notify.h>
#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.");
}
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, screenLockStateChanged, NotificationLock, NULL, CFNotificationSuspensionBehaviorDeliverImmediately);
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, screenLockStateChanged, NotificationChange, NULL, CFNotificationSuspensionBehaviorDeliverImmediately);
//setScreenStateCb();
return YES;
}
2. 第二种是程序退后台后,这时再锁屏就收不到上面的那个通知了,需要另外一种方式, 以循环的方式一直来检测是否是锁屏状态,会消耗性能并可能被苹果挂起(有可能没作用);
static void setScreenStateCb()
{
uint64_t locked;
__block int token = 0;
notify_register_dispatch("com.apple.springboard.lockstate",&token,dispatch_get_main_queue(),^(int t){
});
notify_get_state(token, &locked);
NSLog(@"%d",(int)locked);
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
while (YES) {
setScreenStateCb();
sleep(1);
}
}
以上所述是小编给大家介绍的iOS监听手机锁屏状态,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# ios
# 监听手机锁屏
# 锁屏监听
# iOS实现锁屏页面控制音乐播放
# iOS屏幕旋转与锁屏的示例代码
# iOS中关于音乐锁屏控制音乐(锁屏信息设置)的实例代码
# iOS音乐后台播放及锁屏信息显示
# 小编
# 有可能
# 在此
# 两种
# 给大家
# 所述
# 第二种
# 给我留言
# 感谢大家
# 就可以
# 挂起
# 就收
# 疑问请
# 有任何
# static
# hasBlankedScreen
# lockcomplete
# springboard
# apple
# NotificationPwdUI
相关文章:
建站之星如何取消后台验证码生成?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
广德云建站网站建设方案与建站流程优化指南
网站制作软件有哪些,制图软件有哪些?
如何用已有域名快速搭建网站?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
,想在网上投简历,哪几个网站比较好?
如何快速查询域名建站关键信息?
Bpmn 2.0的XML文件怎么画流程图
如何快速搭建高效WAP手机网站吸引移动用户?
建站主机无法访问?如何排查域名与服务器问题
定制建站流程解析:需求评估与SEO优化功能开发指南
Android自定义控件实现温度旋转按钮效果
如何快速打造个性化非模板自助建站?
ui设计制作网站有哪些,手机UI设计网址吗?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
开源网站制作软件,开源网站什么意思?
建站VPS配置与SEO优化指南:关键词排名提升策略
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
如何在阿里云购买域名并搭建网站?
Python路径拼接规范_跨平台处理说明【指导】
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
如何确认建站备案号应放置的具体位置?
全景视频制作网站有哪些,全景图怎么做成网页?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
建站之星ASP如何实现CMS高效搭建与安全管理?
C++时间戳转换成日期时间的步骤和示例代码
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
海南网站制作公司有哪些,海口网是哪家的?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
建站之星安装步骤有哪些常见问题?
北京企业网站设计制作公司,北京铁路集团官方网站?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
建站之星2.7模板:企业网站建设与h5定制设计专题
如何通过西部建站助手安装IIS服务器?
活动邀请函制作网站有哪些,活动邀请函文案?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
教学网站制作软件,学习*后期制作的网站有哪些?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何快速搭建高效香港服务器网站?
建站之星北京办公室:智能建站系统与小程序生成方案解析
如何配置IIS站点权限与局域网访问?
网站制作公司排行榜,抖音怎样做个人官方网站
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
威客平台建站流程解析:高效搭建教程与设计优化方案
韩国服务器如何优化跨境访问实现高效连接?
中山网站推广排名,中山信息港登录入口?
,网站推广常用方法?
网站制作公司,橙子建站是合法的吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。