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

Posted

技术标签:

【中文标题】ios中是不是有任何类型的部分唤醒锁定机制?【英文标题】:Is there any type of partial wake lock mechanism in ios?ios中是否有任何类型的部分唤醒锁定机制? 【发布时间】:2013-12-14 05:51:32 【问题描述】:

android 中,如果您持有部分唤醒锁定,CPU 将继续运行,无论显示超时或屏幕状态如何,甚至在用户按下电源按钮后也是如此。在所有其他唤醒锁中,CPU 将运行,但用户仍然可以使用电源按钮使设备进入睡眠状态。 ios中是否有这样的机制?当设备处于锁定屏幕时,CPU 将继续运行并检测手势和传感器。

【问题讨论】:

相关***.com/questions/10674004/… 【参考方案1】:

没有。为了延长电池寿命,Apple 故意不提供和隐藏此功能。唯一允许这样做的后台模式是 VOIP 和定位服务,您的应用程序基本上总是在后台执行并且设备不会进入睡眠状态(但屏幕可以关闭)。为了防止滥用这些后台模式,Apple 审核人员对在其 plist 文件中指定这些模式的应用程序更加严格,以确保应用程序确实需要这些模式。

如果你打算做一个企业级应用,不会去应用商店,当然可以使用这些模式,以及私有API,来实现你想要的。

【讨论】:

【参考方案2】:

物有所值,

当设备相机处于预览状态时,屏幕不会进入睡眠状态。

也许是一个可用的类似 WAKELOCK 的选项立即使用

【讨论】:

【参考方案3】:

如果有人仍在搜索,我找到了一种方法来防止应用程序进入睡眠状态,方法是将 isIdleTimerDisabled 设置为 true。它会关闭检测手机应该进入睡眠时间的计时器。

UIApplication.shared.isIdleTimerDisabled = true

现在,如果您想在特定时间点将其关闭,您也可以尝试使用计时器再次将其设置为 false。例如,如果你想在 3 分钟后关闭它,你可以这样做:

let _ = Timer.scheduledTimer(withTimeInterval: 180, repeats: false)  (Timer) in
    UIApplication.shared.isIdleTimerDisabled = false

【讨论】:

以上是关于ios中是不是有任何类型的部分唤醒锁定机制?的主要内容,如果未能解决你的问题,请参考以下文章

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

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

在没有互联网的情况下唤醒锁定的手机

C: 如何检查电脑是不是被锁定/睡眠?

iOS中是不是有“锁定”配置文件?

iOS 本地通知不会在锁定屏幕上播放声音