我在这里看到了一些关于如何检查屏幕是否被锁定的帖子,但没有一个对我有用。它都检测实际屏幕是否关闭(如果它被锁定,则不检测)。
我有一个播放音乐的游戏。按下锁定按钮时,它会继续播放。我最初在 OnStop
中停止了音乐,但应用程序在被锁定后会重新启动,所以音乐最终会再次启动。
然后,我将 KeyboardHidden|orientation
添加到 list 中。这使它不会重新启动应用程序,但 OnStop
似乎不再被调用。
我尝试使用 PowerManager
来查看屏幕是否打开/关闭,这可行,但无济于事。 (我可以让音乐停在那里,但只要你再次按下锁定按钮,音乐就会重新开始)
最佳答案
有更好的办法:
KeyguardManager myKM = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
if( myKM.inKeyguardRestrictedInputMode()) {
//it is locked
} else {
//it is not locked
}
不需要广播接收者、权限或类似的东西。
注意:当用户将他/她的屏幕锁定设置为无时,它不起作用 在设置-->安全-->锁屏-->无
关于android - 检测屏幕何时锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8317331/