检查用户是否在场

时间:2017-11-15 20:30:52

标签: android user-presence

有没有办法确定用户是否主动出现在手机上(而不仅仅是屏幕上)。

我不能依赖捕捉事件。这些只在BroadcastReceiver中的时间点触发:

intent.getAction().equals(Intent.ACTION_USER_PRESENT)
intent.getAction().equals(Intent.ACTION_SCREEN_ON)

我需要一种简单的方法来执行当时的主动检查。服务正在启动,我不希望它在手机处于活动状态时启动(屏幕打开)。

1 个答案:

答案 0 :(得分:3)

您可以通过Android SDK的PowerManager类进行检查。

   PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
   boolean isScreenOn = pm.isScreenOn();

更新的答案: 不推荐使用isScreenOn()方法,将其替换为isInteractive()

   boolean isScreenOn = pm.isInteractive();