Androidアプリケーションを作成しましたが、問題が発生しました。
アプリケーションが実行中で、デバイスの電源をオフにすると、約8秒後にウェイクアップし、画面がオンになり、アプリケーションが再び表示されることがあります。
私の質問は次のとおりです。どのイベントまたは処理の制約(ブロードキャストインテントの処理など)がデバイスをウェイクアップしますか?
編集:RCT_WAKEUPのアラームはデバイス画面をオンにしますか?
前もって感謝します!
AlarmManager が実際に画面をオンにするわけではありません。代わりにウェイクロックを使用できます。
PowerManager.WakeLock wakelock;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.........
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakelock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "AlarmReceiver");
wakelock.acquire();
}
アクティビティが完了したら、必ずウェイクロックを解放してください。
@Override
protected void onStop() {
super.onStop();
wakelock.release();
}
また、マニフェスト ファイルに wake lock 権限を追加する必要があります。
<uses-permission android:name="android.permission.WAKE_LOCK"/>
または、この追加のアクセス許可を含めたくない場合は、ウェイクロックを使用する代わりに、アクティビティで次のコードを使用できます。
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);