我正在使用最新版本的 Flutter 构建一个应用程序。我一直在使用真实的 iOS 设备进行测试,每当我使用应用程序时,我的物理设备都不会因不活动而进入睡眠模式。我将物理设备上的设置设置为在 30 秒内休眠。我尝试过使用 pub.dev (https://pub.dev/packages/wakelock) 中的这个包,但无论如何我的应用程序仍然保持打开状态。代码比较简单如:
await Wakelock.disable();
print(await Wakelock.enabled);
// returns false (device should allow sleep mode)
我本以为我什至不需要软件包,默认情况下将允许设备进入睡眠模式。有没有人遇到过这个问题并解决了?
我是 wakelock 包的作者。
由于此类问题通常应该是 GitHub 问题而不是 StackOverflow 问题,因此我会为此写一个答案而不是简短评论:)
是的,应该的。它通常会进入睡眠状态。
我在这里看到两个选项:
Wakelock.enable
,这会导致您的设备无法进入睡眠状态。我无法准确告诉您发生了什么,因为您的描述不应该如此。
您可以执行以下操作:测试一个根本不使用
wakelock
的应用程序,看看它是否会进入睡眠状态。如果是,您可以尝试查看您在哪里调用 Wakelock.enable
并调试它以确保它根本没有被调用。
之后,如果您有更多信息,请在 GitHub 上打开问题。请确保在此之前打开其他应用程序时您的设备可以进入睡眠状态。
在物理 iPhone 上以调试模式运行 Flutter 应用程序时,我看到了类似的行为。
但是,如果我在发布模式(--release)下运行,设备会在应该的时候进入睡眠状态。
我正在使用 WakelockPlus 来启用/禁用睡眠,这也能正常工作。