本文转载至  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. 关于ProGuard的学习了解(从别处转来)
  2. 《用户网络行为画像》读书笔记(一)
  3. 史上首次!世界杯使用视频裁判
  4. 获得jmp esp地址
  5. 独家下载 |《领军行业大数据及AI实战》解锁九大行业领军企业云上大数据及AI实战
  6. PTA10、统计字符个数 (10 分)
  7. 【linux】为什么 mmap 比系统调用快
  8. Ueditor编辑器修改字体和字号?
  9. ASC转换BCD,ASC2BCD
  10. 流程图-时序图-架构图,部署图-拓扑图-ER图-类图-状态图-用例图
  11. vue炫酷好看的登陆界面
  12. 码易手机站,现已轻快上线!
  13. samba文件共享服务器拒绝访问,Samba共享文件夹拒绝访问
  14. 商城客服功能-------环信即时通讯
  15. 安卓学习专栏——百度地图(6)移动到我的位置(图文+代码)
  16. html5 3d模型资源,玩转 HTML5 下 WebGL 的 3D 模型交并补
  17. 系统架构设计师论文历年考题(2015-2017)考前冲刺来一波真题
  18. FreeSWITCH安装教程
  19. java pdf 用系统字体大小_java - Java PDFBox设置PDF表单中几个字段的自定义字体 - 堆栈内存溢出...
  20. OpenCv中值滤波

热门文章

  1. java数组写99乘法表,Java 实现乘法口诀(99乘法表)
  2. 偏置面命令_UG10.0同步建模之移动面、删除面、替换面详解
  3. python100天从新手到大师 pdf_Python100天从新手到大师(Python100Days)
  4. 服务器配置RAID5(3块硬盘做RAID5,另外再弄一块做数据冗余盘)
  5. linux安装python和pip3,Linux安装python3.6 和pip
  6. queue模块的使用
  7. 使用Docker安装mysql,挂载外部配置和数据
  8. 图论学习四之Disjoint set union并查集
  9. msp430入门编程21
  10. 使用ASP.NET 2.0 Profile存储用户信息