8

我想以disable/delay编程方式锁定屏幕。在调查这一点时,KeyguardManager是否已贬值/无法始终如一地工作,FLAG_DISMISS_KEYGUARD这不是一个选项,因为我想在后台执行此操作,出于电池原因我不想使用 WakeLock,设备管理似乎无法做到这一点而且,虽然SCREEN_OFF_TIMEOUT可以控制屏幕何时休眠,但我无法找到类似的屏幕锁定超时。

我在这里想念什么?谢谢。

4

3 回答 3

13

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

这也不需要清单中的任何许可。

于 2013-11-13T13:24:59.457 回答
3

@nandeesh的答案是有效的,但它已被弃用,禁用锁屏使用标志:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
于 2013-04-17T09:42:30.530 回答
2

你试过这个吗?

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

添加

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

您可以使用它禁用键盘保护。

于 2012-08-18T20:01:12.777 回答