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 回答