有没有一种方法可以检查屏幕是打开还是关闭?

时间:2018-08-22 07:06:27

标签: android screen alarmmanager

我需要一项服务来进行gps更新,但仅限于屏幕打开时。有没有办法做到这一点? 我的想法是与“警报管理器”和“警报接收器”类一起工作,该类在屏幕打开且正在启动服务时会发出声音。但是Alarmreciever如何检查屏幕是否打开?

2 个答案:

答案 0 :(得分:2)

您可以使用此方法检查屏幕是否打开/关闭。

public boolean isScreenOn(Context context) {
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
        DisplayManager dm = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE);
        boolean screenIsOn = false;
        for (Display display : dm.getDisplays()) {
            if (display.getState() != Display.STATE_OFF) {
                screenIsOn = true;
            }
        }
        return screenIsOn;
    } else {
        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        //noinspection deprecation
        return pm.isScreenOn();
    }
}

称呼它

isScreenOn(YourActivity.this);

答案 1 :(得分:0)

尝试

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
        boolean isScreenOn = pm.isScreenOn();
        if (isScreenOn){
            //Screen is on
        }else {
            //Screen is off
        }
相关问题