防止Windows Phone 8自动锁屏

13

我写了一个应用程序,在后台线程中执行一些耗时的操作,比如Web请求。我的问题是,屏幕自动锁定后一段时间,操作就会被中断。

有没有办法在这些操作进行期间防止屏幕自动关闭?或者在屏幕关闭时以某种方式继续运行?

我知道有方法可以防止调试时屏幕关闭,但我需要用户手中出现这种情况。因此,我不能依赖于手机上设置的某些选项,而是需要一些编程解决方案。


可能是重复的问题:如何停止Windows Phone 7锁定屏幕? - MarcinJuraszek
@MarcinJuraszek 那个问题解决了测试和调试时的另一个问题。我的问题出现在最终用户使用应用程序时。我会更新问题以更清晰明了。 - PKeno
可能是Can I prevent screen timeout on Windows Phone 7?的重复问题。 - Paul Annetts
2个回答

20

可以使用当前PhoneApplicationServiceUserIdleDetectionMode属性来强制保持屏幕常亮。

要禁用自动锁屏:

PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;

重新启用它的方法:

PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Enabled;

可以在MSDN上找到更多信息。


4
当出现这种情况时,微软建议您进行一些额外的操作。这些操作在此链接中列出:http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff941090%28v=vs.105%29.aspx。 - Owen Johnson

8

我知道这个问题是关于Windows Phone 8的,但是对于Windows Phone 8.1(通用XAML应用程序),我很难找到方法。

var displayRequest = new Windows.System.Display.DisplayRequest();
displayRequest.RequestActive();

应用程序如果需要长时间运行或显示视频,可以调用DisplayRequest::RequestActive方法请求系统保持屏幕常亮。当该方法被激活后,应用程序在前台运行时设备的屏幕将一直保持开启状态。当用户将应用程序移出前台时,系统将停止应用程序的屏幕常亮请求,并在应用程序再次进入前台时重新激活请求。
参见:http://msdn.microsoft.com/en-us/library/windows/apps/br241816.aspx

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