如何在触发SCREEN_ON接收器时禁用Keyguard并向用户显示活动?

Rya*_*yan 8 android keyguard

当screen_on激活广播接收器时,如何禁用键盘锁,这样当用户看到它后面开始的活动时?(活动已经开始......)

我一直在尝试从屏幕关闭触发的广播接收器中的以下代码...

KeyguardManager  myKeyGuard = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
myLock = myKeyGuard.newKeyguardLock();
myLock.disableKeyguard();
Run Code Online (Sandbox Code Playgroud)

虽然它似乎没有工作.当我打开屏幕时,我仍然需要手动解锁手机上的键盘锁,以显示其背后的活动.

myl*_*ock 5

我建议使用窗口标志dismiss_keyguard或show_when_locked如果你有一个窗口需要在唤醒时通过锁屏的顶部.

http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SHOW_WHEN_LOCKED

你如何使用它如下(在设置布局之前在onCreate中调用)

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
Run Code Online (Sandbox Code Playgroud)

  • 我知道这是一个老帖子,但是无论我把它们放在哪里,旗帜对我都不起作用,另一方面,键盘管理员似乎总是工作.其他读者只需注意一点 (6认同)

Rya*_*yan 1

我想我明白了我做错了什么。看起来这只是我的清单中使用disable_keyguard权限时出现的标签错误。我更正了清单后,它现在可以正常工作了。