4

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に設定した後、明るさを完全に戻す方法を教えてください。

4

1 に答える 1

2

このコードの使用

params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);

画面をオフにするのではなく、画面をできるだけ暗くします。特定のデバイスで画面の明るさを完全にオフFLAG_KEEP_SCREEN_ONに設定できる場合でも、画面がオフになることを決して許可せず、デバイスが低電力モードになることを意味します。

于 2012-07-30T02:07:35.450 に答える