【问题标题】:iOS App prevents device from sleep modeiOS App 阻止设备进入睡眠模式
【发布时间】:2014-03-04 06:52:03
【问题描述】:

我的 iOS 应用程序的行为非常奇怪。它可以防止设备进入待机状态。我已经搜索过是否有任何地方设置了 idleTimeDisabled 标志,但事实并非如此。设置应用程序中的空闲计时器设置为 2 分钟,并且可以在其他应用程序中使用。该设备没有越狱,甚至重新启动设备也无济于事。该应用程序是由其他人编写的,我是新手。所以目前我不知道要寻找什么。你们有谁知道为什么会这样,或者我怎么能弄清楚这种行为的原因是什么?

非常感谢!

【问题讨论】:

  • 您是否在您的代码中找到[[UIApplication sharedApplication] setIdleTimerDisabled:No]; 的任何实例?
  • 这是在 Xcode 中运行应用程序的时候吗?
  • 感谢大家的快速回答。 [[UIApplication sharedApplication] setIdleTimerDisabled:NO];没有设置,应用程序不是由 Xcode 启动的。
  • @Alex 出了什么问题。你解决了吗?

标签: ios standby


【解决方案1】:

如果您的应用正在使用 AVPlayer 或其他类似的 AVFoundation 功能,这可能是原因。

如果AVPlayer 正在播放视频,则设备在播放视频时不会进入睡眠状态。

如果视频循环播放,设备将永远不会进入睡眠状态。

编辑: 在 iOS 12 中,现在可以通过设置实现这一点

player.preventsDisplaySleepDuringVideoPlayback = false

【讨论】:

  • 看来你是对的。也许有人知道解决这个问题的方法?我们使用 AVPlayer 作为交互式背景。
  • 不知道有没有办法告诉AVPlayer不要阻塞睡眠模式。可以尝试在AVPlayer开始播放后设置idleTimerDisable:NO,或者自己实现一个idle timer并暂停播放:/
  • 多个[1] 人[2] 报告说,您在播放 AVPlayer 时无法绕过屏幕锁定。 [1] stackoverflow.com/a/38018555/424210 [2] stackoverflow.com/a/2489351/424210
【解决方案2】:

将此行放在不需要处于睡眠模式的ViewController

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

重要提示:您应该仅在必要时设置此属性,并且应确保在不再需要时将其重置为 NO。最多 应用程序应该让系统在空闲时关闭屏幕 计时器过去。这包括音频应用程序。适当使用 音频会话服务,播放和录制继续 屏幕关闭时不间断。唯一的应用程序 应该禁用空闲计时器正在映射应用程序、游戏或 具有零星用户交互的类似程序。

【讨论】:

  • 感谢您的回答 Mutawe。但问题不在于应用程序或其中一个 Viewcontroller 应该始终保持打开状态。该应用程序(不幸的是)自己执行此操作并阻止设备处于待机状态。应用程序中不存在 setIdleTimerDisabled 标志。
【解决方案3】:

确保您没有使用 Xcode 进行“测试”。因为只要你用电缆插入你的 iPhone,它就会一直保持开机状态。

【讨论】:

  • 我也觉得这是 Xcode 所做的事情。重启设备会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多