当屏幕关闭时,isScreenOn()返回true

时间:2015-02-19 02:01:29

标签: android android-screen

我正在尝试检测屏幕是否已关闭。试过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;
    }

}

2 个答案:

答案 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()。