1

有没有办法确定用户是否活跃在手机上(不仅仅是屏幕上)。

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

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

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

4

1 回答 1

3

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

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

更新答案: isScreenOn() 方法已弃用,将其替换为 isInteractive()

   boolean isScreenOn = pm.isInteractive();
于 2017-11-15T20:55:25.743 回答