我正在尝试检测屏幕是否已关闭。试过BroadcastReceiver
但没有按预期工作。
所以我尝试使用isScreenOn()
中的电源管理器onPause()
,效果很好。
但我注意到,当我按下电源按钮锁定屏幕然后再次按下它以解锁时,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;
}
}
答案 0 :(得分:0)
基于此Android开发人员指南的链接: http://developer.android.com/reference/android/os/PowerManager.html#isInteractive()
isScreenOn()
不会检查屏幕是打开还是关闭,而是检查它是否具有交互性。
"此方法返回的值仅指示设备是否处于交互状态,该状态可能与打开或关闭屏幕无关。要确定屏幕的实际状态,请使用getState()。"
答案 1 :(得分:0)
请参阅http://developer.android.com/reference/android/os/PowerManager.html:
isScreenOn()
此方法在API级别20中已弃用。请改用isInteractive()。