如何判断设备是否正在睡眠

ite*_*tor 11 android

这是我的情景.我有一个正在播放背景声音的应用.使用BroadcastReceiver我可以告诉显示器何时关闭,然后杀死声音.我还可以判断屏幕是否重新打开.但是,如果设备处于锁定状态,我不希望音频启动.因此,我等待ACTION_USER_PRESENT意图发出信号.这一切都有效,但如果用户在关闭屏幕后快速重新打开屏幕,则无法获得锁定屏幕或ACTION_USER_PRESENT消息.那么,有没有办法告诉,当屏幕重新打开时,设备是否锁定,我想这也意味着睡觉与否?

Bud*_*ril 12

((PowerManager) getSystemService(Context.POWER_SERVICE)).isScreenOn()
Run Code Online (Sandbox Code Playgroud)


sat*_*ine 9

您可以尝试使用KeyguardManager检查设备是否已锁定.这是一些代码(我自己没试过):

KeyguardManager kgMgr = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
boolean showing = kgMgr.inKeyguardRestrictedInputMode();
Run Code Online (Sandbox Code Playgroud)

祝好运!