画面のオン/オフに関連する StackOverflow には既にいくつかの質問がありますが、私にとっては単一の解決策はありませんでした。
ウェイクロックは推奨されなくなったため、使用したくありません。私のアプリは を使用して画面を起動します
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
。これははるかに簡単で、バッテリーを解放するのを忘れた場合にバッテリー全体を消耗させるような状況にはなりません。次のコードのように明るさを 0 に設定しても機能しません。私の 2 台のテスト用電話 (Samsung Galaxy S2 および S3) では、このコードは画面を暗くするだけで、オフにはしません。
layoutParam.screenBrightness = 0; layoutParam.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON; getWindow().setAttributes(layoutParam);
私のシナリオ - これは、着信に対して画面をオンにする VoIP アプリですが、ユーザーが電話を顔に近づけた場合、画面をオフにする必要があります (ただし、CPU を実行したままにする)。近接センサーのコードは正常に動作しています。