android - 检测屏幕何时锁定

标签 android screen

我在这里看到了一些关于如何检查屏幕是否被锁定的帖子,但没有一个对我有用。它都检测实际屏幕是否关闭(如果它被锁定,则不检测)。

我有一个播放音乐的游戏。按下锁定按钮时,它会继续播放。我最初在 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/

相关文章:

html - 移动视口(viewport)无法打开适合屏幕的页面

java - fragment 中微调器的 setOnItemSelectedListener()

android - 加载和滚动时 Listview 行变得混合颜色

java - 在 AVD 上安装应用程序时出现 Logcat 警告

Android : How to convert view to Bitmap, 没有捕获背景屏幕

android - python 基维 : How to optimize screen resolution for all devices?

java - 配置 Gradle + Robolectric

添加新资源文件时 Android Studio 不显示源集

css - 宽度:在移动设备上 100% 不填满屏幕

android - 2 台设备上的大小不同,即使我使用 "dp"