私は何かを実装しようとしています -
画面がオフ(暗い)です。15 秒間 (イベント/ブロードキャストなどによって) 画面をスリープ解除できるようにしたいのですが、その後、ユーザーの介入がなければ、画面は再びオフ (暗い) になります。 .
これどうやってするの?
私は何かを実装しようとしています -
画面がオフ(暗い)です。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
Androidマニフェストでの許可が必要になります。
これを行うには、部分的な wake lockを保持している Service を実行する必要があります。その後、サービスは任意の間隔でブロードキャストレシーバーにインテントを送信し、画面を起動できます。ただし、コメンターが示唆したように、これは、デバイスの画面がオフの場合でも CPU をオンにしておく必要があることを意味し、これにより、スタンバイよりもバッテリーが早く消耗します。(それ自体は、考慮を検討する必要があると言っているだけで、それをしない理由にはなりません)
その他の要件は、PowerManager API で簡単にカバーできます。うまくいけば、それで十分です。幸運を!