以编程方式禁用/延迟Android锁定屏幕

时间:2012-08-18 19:56:16

标签: android

我想以编程方式disable/delay锁定屏幕。在研究这个时,KeyguardManager被折旧/不能一致地工作,FLAG_DISMISS_KEYGUARD不是一个选项,因为我想在后台执行此操作,我不想出于电池原因使用WakeLock,设备管理似乎不具备此功能,并且虽然SCREEN_OFF_TIMEOUT可用于控制屏幕何时休眠,但我无法找到屏幕锁定的类似超时。

我在这里缺少什么?感谢。

3 个答案:

答案 0 :(得分:13)

尝试这个,只要活动在最顶层,它就会保持唤醒屏幕/显示。     getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

此外,这不需要清单中的任何权限。

答案 1 :(得分:3)

@nandeesh 的答案正在运行,但已弃用,以禁用锁定屏幕使用标记:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);

答案 2 :(得分:2)

你尝试过这个吗?

KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();

添加

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

您可以使用此功能禁用键盘锁。