我正在尝试向用户显示祝酒,并在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);
}
};
答案 0 :(得分:0)
你在Manifest中获得了正确的权限吗?
你应该有这个:
<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