1

ユーザーにトーストを表示し、5秒後に画面を最小の明るさに暗くしようとしています。しかし、画面はまったく暗くなりませんでした。コードを間違えましたか?助けてください。

コード:

private void DimScreen()
    {
            Toast.makeText(StartActivity.this, "Dimming screen in 5 seconds, press Stop button to turn on the screen", Toast.LENGTH_SHORT).show();
            handler.postDelayed(r, 5000);
    }

private Handler handler= new Handler();
    private Runnable r = new Runnable()
    {
        public void run()
        {
            WindowManager.LayoutParams lp = getWindow().getAttributes();
            lp.screenBrightness=0.01f;
            getWindow().setAttributes(lp);  

        }
    };
4

1 に答える 1

0

マニフェストで適切な権限を取得していますか?

これが必要です:

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

それでもうまくいかない場合は、次のようなコードを使用することをお勧めします。

android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS, SysBackLightValue);

参照: http://android-er.blogspot.tw/2011/02/change-system-screen-brightness-using.html

また、UI スレッドの外でそれを行うことができるかどうかはわかりません...それが問題になる場合は、runOnUiThreadを使用できます

于 2012-08-31T04:58:17.710 に答える