解锁锁屏

时间:2016-02-17 09:22:11

标签: android

我正在编写一个应用程序来管理或自定义Android设备的解锁屏幕。它的工作原理如下:

  1. 用户使用电源按钮锁定屏幕。
  2. 用户尝试解锁屏幕,再次按下电源按钮
  3. 我的活动弹出 - 屏幕仍然锁定
  4. 用户回答问题,如果答案正确,则屏幕解锁
  5. 我已为第三步创建了一个活动,并将以下代码添加到其onCreate方法中:

    Window window = getWindow();
    
    window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
    window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
    window.addFlags(WindowManager.LayoutParams.FLAG_SECURE);
    

    这正如我所希望的那样正常和完全正常。我的问题是第四步。我搜索并找到了许多解决方案,但他们都没有为我做这些。

    How to lock/unlock phone programmatically - 这只是一种在锁定屏幕上显示活动的方法。它没有解锁它。

    Android screen lock/ unlock programatically - 此解决方案不仅被弃用,而且还非常不可靠。它不会解锁屏幕,但会创建另一个锁并解锁。因此,使用此功能可以访问应用程序,但无法访问敏感设置。 (试试吧!)

    我尝试将我的应用程序注册为设备管理员。这对我也没有帮助。我可以更改设置,但无法解锁屏幕。

1 个答案:

答案 0 :(得分:0)

mehrdadjg

我查看了Android Api源代码(级别23)我不知道如何将KeyguardService的方法与设备管理员或root权限一起使用,但Android使用此服务(com.android.systemui.keyguard.KeyguardService的.java)。 Android绑定此服务(IPC与aidl文件)并使用它。

另一方......

Keyguard控制器类,其名称为KeyguardViewMediator。在" com.android.systemui.keyguard"包。 (也许请查看这一行1157,1433)

  

我不知道如何进行解锁操作,但Android使用此类。