【问题标题】:Detect when screen is locked UWP检测屏幕何时锁定 UWP
【发布时间】:2016-08-24 14:47:39
【问题描述】:

如何在 UWP 应用中检测屏幕是否被锁定?

当屏幕被锁定时,应用程序会暂停,我需要输入一些不同的代码以防锁定屏幕。

【问题讨论】:

  • 系统只会向您发送一个暂停通知。 1)切换到桌面,2)锁定屏幕和3)系统进入低功耗状态都是可能导致暂停运行的事件。由于 (1) 和 (2) 可以同时发生,您将没有机会运行此“不同的代码”,因为您不会收到 (2) 的通知。由于 (2) 和 (3) 可以同时发生,您将运行您的“不同代码”,然后没有机会运行您为 (3) 运行的“正常代码”。我建议重新考虑对这种“不同代码”的需求。
  • 使用UserNotPresent触发条件的后台任务。

标签: c# windows win-universal-app lockscreen


【解决方案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

要记住的事情是

  1. 仅在需要时使用显示请求,即没有用户的时候 输入是预期的,但显示应该保持打开。例如, 在全屏演示期间或用户正在阅读 电子书。
  2. 不再需要时立即释放每个显示请求。
  3. 在应用程序暂停时释放所有显示请求。如果仍需要显示保持开启,应用程序可以在重新激活时创建新的显示请求。

【讨论】:

    【解决方案2】:

    不,您无法准确检测用户何时激活锁屏,但您可以检测生命周期中的变化。通过这种方式,您可以检测用户何时暂停您的应用。

    有关生命周期的信息:https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/app-lifecycle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 2019-05-03
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多