本文转载至  http://gaohaijun.blog.163.com/blog/static/176698271201161524857373/

问题:那位能说一下怎么能检测到iphone的屏幕现在是否在被点亮的状态,还是被关闭的黑屏状态,
要用那个api ,给点提示 谢谢了。

复制代码

  1. - (void)didTurnOnDisplay;
  2. - (void)didTurnOffDisplay;

没有测试,但是相信可以。

刚刚测试,假如是子类化UIApplication是无法接受到这个方法的。用Objc Runtime的method_exchangeImplementations(method, method)就可以。

以下代码:

UIApplication方面:

复制代码

  1. @interface UIApplication (_)
  2. - (void)handleDidTurnOnDisplay;
  3. - (void)handleDidTurnOffDisplay;
  4. @end
  5. @implementation UIApplication (_)
  6. - (void)handleDidTurnOnDisplay
  7. {
  8. NSLog(@"Did turn on display.");
  9. //[self handleDidTurnOnDisplay];
  10. }
  11. - (void)handleDidTurnOffDisplay
  12. {
  13. NSLog(@"Did turn off display.");
  14. //[self handleDidTurnOffDisplay];
  15. }
  16. @end

UIApplicationDelegate:

复制代码

  1. - (void)applicationDidFinishLaunching:(UIApplication *)application {
  2. Method m1 = class_getInstanceMethod([UIApplication class], @selector(didTurnOnDisplay));
  3. Method m2 = class_getInstanceMethod([UIApplication class], @selector(didTurnOffDisplay));
  4. Method m3 = class_getInstanceMethod([UIApplication class], @selector(handleDidTurnOnDisplay));
  5. Method m4 = class_getInstanceMethod([UIApplication class], @selector(handleDidTurnOffDisplay));
  6. method_exchangeImplementations(m1, m3);
  7. method_exchangeImplementations(m2, m4);
  8. [window makeKeyAndVisible];
  9. }
  10. - (void)applicationWillResignActive:(UIApplication *)application
  11. {
  12. NSLog(@"Application will resign active.");
  13. }
  14. - (void)applicationDidBecomeActive:(UIApplication *)application
  15. {
  16. NSLog(@"Application did become active.");
  17. }

以上代码在打开后关闭屏幕再打开的条件下输出:

引用

2009-08-17 19:05:37.770 *[380:207] Application did become active.
2009-08-17 19:06:36.370 *[380:207] Did turn off display.
2009-08-17 19:06:36.452 *[380:207] Application will resign active.
2009-08-17 19:06:43.310 *[380:207] Did turn on display.
2009-08-17 19:06:43.415 *[380:207] Application did become active. 

可见这个是方法在delegate的willResignActive和didBecomeActive之前调用。

其实屏幕在变黑时, 会通知程序
- (void)applicationWillResignActive:(UIApplication *)application;

而解锁后变亮会触发
- (void)applicationDidBecomeActive:(UIApplication *)application;

转载于:https://www.cnblogs.com/Camier-myNiuer/p/3640525.html

iphone怎么检测屏幕是否被点亮 (用UIApplication的Delegate)相关推荐

  1. iphone 检测屏幕触摸事件

    原博客 : http://www.yifeiyang.net/iphone-developer-advanced-8-touch-screen-test-event/ iPhone开发进阶(8)--- ...

  2. adb检测屏幕是否锁屏的判断方式

    adb检测屏幕是否锁屏的判断方式 通过adb shell dumpsys window policy 查看屏幕状态 1.亮屏且有锁 showing=true和 screenState=SCREEN_S ...

  3. 5s硬件测试软件,iphone怎么检测硬件故障

    你们知道怎么检车iPhone的硬件故障吗?下面是学习啦小编带来的关于iphone怎么检测硬件故障的内容,欢迎阅读! iphone怎么检测硬件故障? 问题的表现: 如果您的 iPhone 存在问题,请先 ...

  4. iOS-12 iPhone XS Max 和iPhone XR新屏幕简单适配方式

    在新的机器发布之后,我们需要对更大的刘海屏幕做适配,以下是需要新适配的机型: 型号 逻辑尺寸 系数 分辨率 iPhone XR 414pt * 896pt @2 828px * 1792px iPho ...

  5. 转载:iPhone 6 Plus 屏幕宽度问题 375 vs 414

    首先看一张比较简单明了的 iPhone 6 与 iPhone 6 Plus 对比图,来自 PaintCode 的<The Ultimate Guide To iPhone Resolutions ...

  6. iphone及ipad屏幕尺寸参考

    初代iPhone 2007年,初代iPhone发布,屏幕的宽高是 320 x 480 像素.下文也是按照宽度,高度的顺序排列.这个分辨率一直到iPhone 3GS也保持不变.那时编写iOS的App(应 ...

  7. iPhone 各机型屏幕尺寸

    iPhone 各机型屏幕尺寸 手机设备型号 屏幕尺寸 分辨率点数 (pt) 屏幕显示模式 分辨率像素(px) 屏幕比例 iPhone SE 4.0吋 320x568 @2x 640x1136 16:9 ...

  8. 使用YOLOv3(Python - Keras)实时检测屏幕画面进行目标检测教程(以检测GTA5游戏画面为例子)

    毕业设计项目做了一个在游戏GTA5中实现自动驾驶的项目,其中一个功能是汽车的碰撞检测.为了实现这个功能我首先需要能实现识别汽车,对比了使用了SSD和Faster-RCNN,我选择了YOLOv3来实现这 ...

  9. iPhone X(10)屏幕分辨率与适配

    iPhone X(10)屏幕分辨率与适配,iOS开发适配与UI设计问题.iPhone人机交互指南. 北京时间的9月13日凌晨,美国当地时间的9月12日上午,苹果在发布会上发布了四款产品,本包括全新的A ...

最新文章

  1. python之异常处理
  2. [Swift]LeetCode206. 反转链表 | Reverse Linked List
  3. JZOJ 4307. 【NOIP2015模拟11.3晚】喝喝喝
  4. html5导航菜单置顶,jQuery和css3顶部固定导航菜单特效插件
  5. CentOS系统参数优化
  6. 解决华为交换机S5700无法解除ip/Mac绑定的问题
  7. struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息
  8. 剖析大神代码,计算整型里面1的个数
  9. css样式子绝父相,子绝父相_HTML+CSS前端基础知识教程_腾讯视频
  10. SQLServer中Case when的一个意外问题
  11. pycharm如何设置python版本、设置国内pip镜像、添加第三方类库
  12. 深度学习实践指南(六)—— ReLU(前向和后向过程)
  13. spring 4.x下让http请求返回json串
  14. 分享:国外著名代码管理网站GitHub访问方式
  15. 有哪些好用的低代码开发平台?
  16. 计算机进入屏保快捷键,电脑如何快速进入屏保
  17. Spring中过滤器和拦截器
  18. linux查看数据库实例名端口号,查看数据库tns配置
  19. C语言新手入门练习之三子棋
  20. easypoi 语法_【语法微课合集】50堂英语语法微课,视频课件免费下载,建议收藏或转发朋友圈...

热门文章

  1. TF使用例子-情感分类
  2. 南京的学员看过来 | NVIDIA DLI深度学习入门培训
  3. 向程序发送命令失败_java程序员进阶:Redis分布式技术问题集锦
  4. 安装python缺少dll_python报错DLL load failed:找不到模块怎么解决?
  5. IDEA 安装JUnitGenerator V2.0 插件 帮助生成单元测试
  6. vSphere vSAN 入门
  7. Python -- 常见错误解决方法记录
  8. vue项目的骨架及常用组件介绍
  9. 《DSP using MATLAB》示例Example7.10
  10. HTTP Response Splitting攻击探究 转