有没有办法确定用户是否主动出现在手机上(而不仅仅是屏幕上)。
我不能依赖捕捉事件。这些只在BroadcastReceiver中的时间点触发:
intent.getAction().equals(Intent.ACTION_USER_PRESENT)
intent.getAction().equals(Intent.ACTION_SCREEN_ON)
我需要一种简单的方法来执行当时的主动检查。服务正在启动,我不希望它在手机处于活动状态时启动(屏幕打开)。
答案 0 :(得分:3)
您可以通过Android SDK的PowerManager类进行检查。
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
boolean isScreenOn = pm.isScreenOn();
更新的答案: 不推荐使用isScreenOn()方法,将其替换为isInteractive()
boolean isScreenOn = pm.isInteractive();