打开/唤醒屏幕一段时间

时间:2012-04-25 21:38:55

标签: android screen power-management

我试图实现一些东西 -

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

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用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

您需要在android清单中使用权限WAKE_LOCK

答案 1 :(得分:1)

为了做到这一点,你必须有一个正在运行的服务,持有partial wake lock。然后,该服务可以以您想要的任何间隔向广播接收器发出意图并唤醒屏幕。不像评论者建议的那样,这意味着即使设备屏幕关闭,CPU也必须保持运行,这样会比备用电池更快地耗尽电池。 (这本身并不是不这样做的理由,只是说你必须权衡考虑因素)

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