检测屏幕何时锁定 UWP
Posted
技术标签:
【中文标题】检测屏幕何时锁定 UWP【英文标题】:Detect when screen is locked UWP 【发布时间】:2016-08-24 14:47:39 【问题描述】:如何在 UWP 应用中检测屏幕是否被锁定?
当屏幕被锁定时,应用程序会暂停,我需要输入一些不同的代码以防锁定屏幕。
【问题讨论】:
系统只会向您发送一个暂停通知。 1)切换到桌面,2)锁定屏幕和3)系统进入低功耗状态都是可能导致暂停运行的事件。由于 (1) 和 (2) 可以同时发生,您将没有机会运行此“不同的代码”,因为您不会收到 (2) 的通知。由于 (2) 和 (3) 可以同时发生,您将运行您的“不同代码”,然后没有机会运行您为 (3) 运行的“正常代码”。我建议重新考虑对这种“不同代码”的需求。 使用UserNotPresent
触发条件的后台任务。
【参考方案1】:
您会在这里找到答案: https://developerinsider.co/prevent-the-screen-from-locking-on-uwp/
对于那些不寻找指向另一个帖子的链接的人,这些帖子可能或不可能有帮助,这里是摘要
您将使用的代码是
var displayRequest = new DisplayRequest();
displayRequest.RequestActive(); //to request keep display on
displayRequest.RequestRelease(); //to release request of keep display on
要记住的事情是
-
仅在需要时使用显示请求,即没有用户的时候
输入是预期的,但显示应该保持打开。例如,
在全屏演示期间或用户正在阅读
电子书。
不再需要时立即释放每个显示请求。
在应用程序暂停时释放所有显示请求。如果仍需要显示保持开启,应用程序可以在重新激活时创建新的显示请求。
【讨论】:
【参考方案2】:不,您无法准确检测用户何时激活锁屏,但您可以检测生命周期中的变化。通过这种方式,您可以检测用户何时暂停您的应用。
有关生命周期的信息:https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/app-lifecycle
【讨论】:
以上是关于检测屏幕何时锁定 UWP的主要内容,如果未能解决你的问题,请参考以下文章