【问题标题】:Disable automatic screen lock in iOS 5.1在 iOS 5.1 中禁用自动屏幕锁定
【发布时间】:2012-04-11 20:32:48
【问题描述】:

以下代码行可防止应用在闲置一段时间后自动锁定屏幕。

[UIApplication sharedApplication].idleTimerDisabled = YES; //write this in applicationDidFinishLaunching

它在 iOS 5.0 之前运行良好。 但是 iOS 5.1 不尊重这条线,并在空闲一段时间后锁定屏幕。 如何解决这个恼人的问题?

谢谢。

编辑:

相同的代码在 5.0.1 设备中安装时可以正常工作。但我不知道为什么它不适用于 5.1 设备。

【问题讨论】:

  • 这听起来像是一个错误。如果您想报告错误 -> bugreport.apple.com
  • 你在哪里调用这个代码?您确定它正在执行(您是否设置了断点并检查过)?苹果的例子是把application.idleTimerDisabled = YES;放在delegate的applicationDidFinishLaunching
  • 是的@NickBull 我只将代码放在 applicationDidFinishLaunching 中。但正如您所见,同样的代码在 5.0.1 设备中安装时运行良好。
  • @MatthiasBauch 我向苹果提交了错误报告...
  • 您是否尝试过使用 Apple 的示例应用程序并构建并运行它?

标签: iphone ios ios5.1


【解决方案1】:

没有应该没有区别。也许你还有另一个错误..
iOS 5.0 to 5.1 API Diffs

【讨论】:

    【解决方案2】:

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

    也许你超过了允许的清醒时间限制?

    【讨论】:

    • 我的应用程序绝对是一个带有零星用户交互的应用程序;)但是看到代码在 5.0.1 中运行没有任何问题。这很奇怪。
    【解决方案3】:

    如果您的应用程序注册了一些后台任务(例如 GPS 位置更新),则可以正常工作。

    【讨论】:

      【解决方案4】:
      [[UIApplication sharedApplication] setIdleTimerDisabled: YES];
      

      在 iOS 5.1 上为我工作

      【讨论】:

        【解决方案5】:

        只需在

        中设置[UIApplication sharedApplication].idleTimerDisabled = YES;
        - (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
        

        对我来说效果很好。但是,有一个警告。我注意到,每次我调用相机实用程序拍摄快照时,idleTimerDisable 都会在幕后设置为 NO。所以在我上传图片后,我不得不再次调用以下代码行:

        [UIApplication sharedApplication].idleTimerDisabled = YES;
        

        如果有更多地方需要相同的策略,我不会感到惊讶。到目前为止,这种方法对我来说没有问题。

        【讨论】:

        • 整个应用程序中我真的不需要 idleTimerDisabled = YES。您只需设置 [[UIApplication sharedApplication] setIdleTimerDisabled: YES];在您的代码需要它并在不再需要时关闭该属性 [[UIApplication sharedApplication] setIdleTimerDisabled: NO];
        【解决方案6】:

        我知道它很旧,但我发现这很好,在 Swift 中你可以做到这一点

        application.idleTimerDisabled = true

        感谢您的回答!我现在使用 xcode 7 Beta 3 ( Swift 2 )

        【讨论】:

        • 斯威夫特 3:application.isIdleTimerDisabled = true
        【解决方案7】:

        对于 Swift,我在委托之外使用它:

            UIApplication.sharedApplication().idleTimerDisabled = true
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-05
          • 2015-07-17
          • 2019-11-09
          相关资源
          最近更新 更多