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

8
我希望您能编写程序来禁用/延迟锁屏。在研究此问题时,KeyguardManager已经过时/不可靠,FLAG_DISMISS_KEYGUARD不是一个选项,因为我想在后台执行此操作,我不想使用WakeLock以节省电量,设备管理似乎不能胜任此任务,虽然SCREEN_OFF_TIMEOUT可用于控制屏幕睡眠时间,但我无法找到类似的超时设置来控制屏幕锁定。

这里我错过了什么?谢谢。

3个回答

14
尝试这个,只要活动保持在最上层,它将保持屏幕/显示保持唤醒状态。 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 另外,这不需要在清单中添加任何权限。

3

@nandeesh的回答是可行的,但它已经被弃用,如果要禁用锁屏,请使用以下标志:

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

2
你试过这个吗?
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();

添加

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

您可以使用此方法禁用键盘锁。

1
是的,而且它已经过时/不一致工作(根据我的原始帖子)。 - Bink

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接