Android 2.3.3 では、次のコードで画面の明るさを 0 に設定しようとしています。
Window myWindow = getWindow();
WindowManager.LayoutParams winParams = myWindow.getAttributes();
winParams.screenBrightness = 0.0f;
myWindow.setAttributes(winParams);
Handler.postDelayed() をスケジュールして Runnable を 1 秒で起動し、次のように明るさを最大に戻します。
Window myWindow = getWindow();
WindowManager.LayoutParams winParams = myWindow.getAttributes();
winParams.screenBrightness = 1.0f;
myWindow.setAttributes(winParams);
ただし、画面は完全にオフになっているようで、この 1 秒後には何も起こりません。Runnable にトレースを入れると、それが Handler によって起動されたことが明確に示されます。
また、これら 2 つの呼び出しを PARTIAL_WAKE_LOCK に含めてみましたが、結果はありませんでした。とにかく、Runnable は機能するので、ここではウェイクロックをあまり使用しません。
また、輝度が 0f ではなく 0.01f に設定されている場合、正常に動作します - 1 秒後に完全に戻ります。
明るさを0に設定した後、明るさを完全に戻す方法を教えてください。