Android 如何以编程方式解锁根设备上的屏幕?

Android 如何以编程方式解锁根设备上的屏幕?,android,root,lockscreen,Android,Root,Lockscreen,我想禁用screen locker in(即使它已锁定),或者在笔记本电脑靠近时,在我的应用程序中将其更改为一些简单的锁定,例如滑动解锁,这样我就不必每次阅读通知时都写12位PIN码 我知道如何在同一个网络中检测笔记本电脑的存在(这是不安全的,但对我来说模糊的安全性就足够了),但除了在非根设备上不可能之外,我找不到其他任何东西。有一个系统应用程序负责设置锁屏,所以这一定是可能的 我在安卓4.4上运行。这应该可以: PowerManager pm = (PowerManager) context.

我想禁用screen locker in(即使它已锁定),或者在笔记本电脑靠近时,在我的应用程序中将其更改为一些简单的锁定,例如滑动解锁,这样我就不必每次阅读通知时都写12位PIN码

我知道如何在同一个网络中检测笔记本电脑的存在(这是不安全的,但对我来说模糊的安全性就足够了),但除了在非根设备上不可能之外,我找不到其他任何东西。有一个系统应用程序负责设置锁屏,所以这一定是可能的

我在安卓4.4上运行。

这应该可以:

PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
        | PowerManager.ACQUIRE_CAUSES_WAKEUP
        | PowerManager.ON_AFTER_RELEASE, "INFO");
wl.acquire();

KeyguardManager km = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock kl = km.newKeyguardLock("name");
kl.disableKeyguard();

第一种方法只是将我的活动置于锁定屏幕上,所以当我按下后退按钮时,我必须输入PIN。第二种方法是我想要的。谢谢,我将编辑答案,删除第一部分。感谢您的反馈:)对于如何在Android 5.0及更高版本上解锁,禁用键盘并不是一个解决方案,Google SmartLock有一个“当设备在附近时”选项用于自动解锁: