我正在尝试检测屏幕是否关闭。尝试使用BroadcastReceiver
,但未按预期工作。
所以我在onPause()
中试用了Power manager isScreenOn()
,效果很好。但我注意到,当我按下电源按钮锁定屏幕,然后立即再次按下解锁屏幕时,isScreenOn()
返回true。
你能帮我吗?
我找不到解决这个问题的办法。
这是代码:
@Override
public void onPause() {
super.onPause();
//registBroadcastReceiver();
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
boolean isScreenOn = powerManager.isScreenOn();
if (!isScreenOn) {
Log.d("Screen", "OFF");
flag1 = true;
}
}
基于Android开发者指南的链接:http://developer.android.com/reference/android/os/PowerManager.html#isInteractive()
isScreenOn()
不检查屏幕是打开还是关闭,而是检查它是否是交互式的。
"此方法返回的值仅指示设备是否处于交互式状态,这可能与屏幕的打开或关闭无关。要确定屏幕的实际状态,请使用getState()。"
请参阅http://developer.android.com/reference/android/os/PowerManager.html:
isScreenOn()
此方法在API 20级中已弃用。请改用isInteractive()。