打开/唤醒屏幕一段时间



我试图实现一些东西 -

屏幕关闭(暗)。我希望能够唤醒屏幕 15 秒(通过事件/广播或其他方式......),之后,如果没有用户的干预,屏幕应该再次关闭(变暗)。

我该怎么做?

您可以使用 AlarmManager。

您可以使用如下行触发警报:

Alarm Manager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
pendingServiceIntent = PendingIntent.getService(this.getApplicationContext(), 0,
            new Intent(this.getApplicationContext(), DataCollectionService.class), 0);
long intervalInMinutes = 5; // will wake you up every 5 minutes
long triggerAtTime = System.currentTimeMillis() + 1000*60*intervalInMinutes;
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pendingServiceIntent);

就我而言,我正在触发一项服务。 您可以扩展BroadcastReceiver或任何您想要的内容。 然后,您将使用 WakeLock 点亮屏幕至少 15 秒:

powerManager = (PowerManager) getSystemService(POWER_SERVICE);
wL = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "LocRepTask");
wL.acquire(); // forces processor to stay awake
// do your stuff.....
wl.release();  // processor no longer awake because of you

您将需要WAKE_LOCK安卓清单中的权限。

为此,您必须有一个正在运行的服务持有部分唤醒锁。 然后,该服务可以根据需要的任何时间间隔向广播接收器发出意向并唤醒屏幕。 但是,就像评论者建议的那样,这意味着即使设备屏幕关闭,CPU也必须保持打开状态,这将比待机更快地耗尽电池电量。(这本身并不是不这样做的理由,只是说你必须权衡考虑)

PowerManager API可以轻松满足您的其他要求 - 希望这足以满足您的要求。 祝你好运!

最新更新