使 iPad 屏幕关闭,但通过触摸唤醒(无锁定) - - iOS 6.0 / openFrameworks

Posted

技术标签:

【中文标题】使 iPad 屏幕关闭,但通过触摸唤醒(无锁定) - - iOS 6.0 / openFrameworks【英文标题】:make iPad screen turn off, but wake up with a touch (no lock) - - iOS 6.0 / openFrameworks 【发布时间】:2012-11-04 21:27:56 【问题描述】:

在 iPad ios 6.0 上,如何使屏幕进入睡眠状态,或者以某种方式禁用图形以保持屏幕寿命,但 iPad 没有锁定,也没有必要按下按钮。相反,当触摸屏幕时,iPad 会完全唤醒,程序恢复并继续在屏幕上运行。

我了解当 iPad 真正进入睡眠状态时,触控功能无法正常工作,那么是否有中间睡眠模式,屏幕会关闭所有像素亮度,但仍对任何触控通知保持警觉?

【问题讨论】:

【参考方案1】:

您需要阻止“真正的”锁定机制,这可以使用您的 UIApplication 实例的 setIdleTimerDisabled: 方法来完成。

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

然后您可以使用共享的UIScreen 实例的setBrightness: 方法降低屏幕亮度。

[[UIScreen mainScreen] setBrightness:0.0f];

要“解锁”屏幕,请执行相反的操作:

[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
[[UIScreen mainScreen] setBrightness:1.0f];

【讨论】:

太好了,非常感谢。但是,我对 iOS 项目非常陌生,所以我不确定将这些代码行放在哪里。我的 XCode 项目基于一个 openFrameworks 示例项目。您能否就我需要将这些放在 OF 项目中的什么位置提供任何建议? 您可以在代码中的任何位置调用这些函数。因此,请确定要执行锁定和解锁步骤的位置,然后将其放在那里。【参考方案2】:

用黑色的uiview覆盖一切,使用

[[UIScreen mainScreen] setBrightness:0.0];

将亮度调整到尽可能低,然后在触摸时反转这些步骤。

这是我能想到的在不使用某些私有 api 的情况下模拟您需要的功能的唯一方法。

编辑:setBrightness 仅适用于 ios 5.0 及更高版本

【讨论】:

以上是关于使 iPad 屏幕关闭,但通过触摸唤醒(无锁定) - - iOS 6.0 / openFrameworks的主要内容,如果未能解决你的问题,请参考以下文章

屏幕关闭时部分唤醒锁定释放

手机锁定时,使用部分唤醒锁和服务不会使应用程序运行

ios中是不是有任何类型的部分唤醒锁定机制?

笔记本电脑的触摸板失灵?

接近唤醒锁并不总是重新打开屏幕

苹果唤醒功能怎么关闭