ACTION_USER_PRESENT的Android方法

时间:2016-11-11 08:20:24

标签: android

我需要检测用户是否在场。我已经使用了带有Intent.ACTION_USER_PRESENT的BroadcastReceiver但是在另一个类中我需要一个方法来实时检查(对于SDK> = 21)。你有什么建议怎么做吗?

例如,对于Intent.ACTION_SCREEN_ON我正在使用它:

private boolean isScreenOn() {
    DisplayManager displayManager = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE);
    for (Display display : displayManager.getDisplays()) {
        if (display.getState() != Display.STATE_OFF) {
            return true;
        }
    }
    return false;
}

但我无法找到USER_PRESENT的相应方式。谢谢

1 个答案:

答案 0 :(得分:0)

您已拥有ACTION_USER_PRESENTACTION_SCREEN_ON

如果您将该状态存储为静态布尔值,则可以侦听ACTION_SCREEN_OFF以重置它。

然后,您可以检查布尔值的状态以确定用户是否在场。但请记住,如果用户长时间超时,这可能并不理想。