我能否防止Windows Phone 7屏幕超时?

4
在基于CE的Windows Mobile中,您可以使用SetPowerRequirementReleasePowerRequirement API来防止屏幕背光超时,如下所示:
IntPtr handle = SetPowerRequirement("BKL1:", PowerState.FULL, 1, IntPtr.Zero, 0);
// screen won't timeout while you do stuff in here
ReleasePowerREquirement(handle);

在WP7上是否可以实现类似的功能?

1个回答

11

可以实现,您可以使用 PhoneApplicationService.Current.UserIdleDetectionMode 来防止屏幕自动锁定和息屏。

您还可以使用 PhoneApplicationService.Current.ApplicationIdleDetectionMode 允许应用程序在锁定屏幕时继续运行。

以下是这两个选项的更多详细信息:

UserIdleDetectionMode

禁用此选项将防止屏幕自动锁定和息屏。例如,我在下载大文件时禁用 UserIdleDetectionMode,以便应用程序不会在一半下载时终止。

下载完成后,我重新启用 UserIdleDetectionMode,以便屏幕像往常一样超时。

ApplicationIdleDetectionMode

注意: 这是一次性操作。您可以禁用它,但无法重新启用。

如果禁用 ApplicationIdleDetectionMode,则在屏幕锁定时您的应用程序仍将继续运行。但是,如果用户启动了其他应用程序,您的应用程序将仍然终止。

认证要求要求您在第一次禁用 ApplicationIdleDetectionMode 时提示用户。例如,“此应用程序将在锁定屏幕下继续运行,并可能耗尽您的电池。你愿意吗?”如果不这样做,您的应用程序将被拒绝。


注意:使用“ApplicationIdleDetectionMode”的认证要求已更改(在文档的v1.4中)。现在,在锁定屏幕下运行时,您必须最小化电源使用。 - Matt Lacey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接