2017-04-11 131 views
-1

我正在研究一种应用程序,该应用程序应该由学生在某种实际测试中使用。 我使用的是Lollipop中引入的屏幕锁定(startLockTask()),所以当我的应用程序启动时,用户需要允许锁定。如何在Android上检测屏幕锁定的锁定和解锁

我无法找到一个办法知道用户点击OK的锁定,当他解开牵制? (用户可以通过按住“返回”和“最近”按钮来取消锁定)。我想知道如果用户目前在锁屏(getLockTaskModeState()),我想知道如果我有办法处理事件的锁定或解锁。

我希望在测试开始时,如果用户'正确登录'(通过允许锁定),我将能够向我的服务器发送信息,以及如果用户在结束之前解锁设备的测试。

编辑

嘿,人! 请在downvoting后解释一下! 如果我没有对自己进行探索 - 如果你能让我知道,我会再试一次。 我读了很多关于一般锁定屏幕的问题和答案,但不是应用程序固定的问题和答案,我还阅读了关于检查当前任务的状态 - 如果锁定或不锁定,但我没有找到答案我问 - 是否有办法处理解锁特定应用的“屏幕锁定”事件。 所以,请解释你的downvotes!

+0

对于低估了我的问题的用户,你能解释一下你的downvoting吗? 我**在发布之前做了**搜索,我相信我的问题很明确。 我很乐意学习如何改进我的问题。 –

+0

这是一个很好的问题,对于任何尝试使用任务固定API的人来说,这可能是一个很常见的问题。 Downvoters正在破解。 –

+0

https://issuetracker.google.com/issues/62957154 –

回答

0
+0

谢谢,但我正在寻找一些事件,当用户锁定/解锁时,如果存在。 因为如果我想有一个日志,告诉我什么时候学生'注销'(解锁...)我将不得不检查状态所有的时间,如果我会使用该方法 –

+0

@chen tian chuin请不要发布仅链接的答案。链接被破坏 - 您应该发布代码或详细说明您的解决方案。 – yakobom

+0

@yakobom你知道我是否有办法处理解锁事件? –

0

Device Admin Recevier class为您提供固定和取消固定的事件...但是,该示例在为设备所有者调配已安装的应用程序时使用该类。不确定您是否可以使用它。你也可以参考这个:How to be notified when screen pinning is turned off in Android 5.0 Lollipop?

+0

我在链接中读到的问题,但它不是相同的情况下,没有设备所有者(我不能)没有好的解决方案。 我试图捕获onKeyDown或释放锁的两个按钮,但它没有奏效。 没有一个更好的主意,我想我将不得不运行一些服务来检查计时器任务中的锁定状态。 –