Android 无法正确调暗屏幕
我试图向用户敬酒,并在5秒后将屏幕调暗至最低亮度。但屏幕一点也不暗。我的密码有错吗?请帮忙 代码:Android 无法正确调暗屏幕,android,Android,我试图向用户敬酒,并在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.po
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);
}
};
您是否在清单中获得了正确的权限 你应该有这个:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
见:
另外,我不确定您是否能够在UI线程之外做到这一点。。。如果最终出现问题,您可以使用是您的设备吗?另外,在亮度更改后添加一个toast,它是否显示?否。我在setAttributes(lp)之后添加了日志,它在logcat上正确显示。我也尝试了toast,它也显示了。为什么是0.01f?为什么不是0?0将使屏幕完全变暗,并且当用户尝试重新打开设备时会出现锁定屏幕。我的代码与发布的链接u几乎相同,我想知道为什么您需要设置android.provider。您是否尝试从UI线程而不是其他线程运行?我认为它正在UI线程上运行,因为我可以在getwindow()之后执行toast。setattribute()操作。如果您复制代码使屏幕变暗,而不是发布到处理程序(它应该立即使屏幕变暗),则会发生什么。这行吗?我试着在活动中的每一个地方调用这3行,似乎我的活动根本没有响应它们……我试着调用getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_on);我的活动也没有反应。。。
android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS, SysBackLightValue);