我正在编写一个应用程序来管理或自定义Android设备的解锁屏幕。它的工作原理如下:
我已为第三步创建了一个活动,并将以下代码添加到其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 - 此解决方案不仅被弃用,而且还非常不可靠。它不会解锁屏幕,但会创建另一个锁并解锁。因此,使用此功能可以访问应用程序,但无法访问敏感设置。 (试试吧!)
我尝试将我的应用程序注册为设备管理员。这对我也没有帮助。我可以更改设置,但无法解锁屏幕。
答案 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使用此类。