所以我有一个有效的代码来更改屏幕的亮度,就像在回答她时一样-
Change the System Brightness Programmatically
我只是找不到任何地方,当用户从应用程序更改设备时,如何显示设备的亮度指示条发生变化。
例如,要更改音量,有一个标志告诉其显示UI(FLAG_SHOW_UI)-
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, newStreamVolume, AudioManager.FLAG_SHOW_UI);
我试图在亮度参数上达到相同的效果。
有什么想法吗?
答案 0 :(得分:1)
与音量不同,没有物理按钮可以更改亮度,因此弹出指示亮度变化的提示变得毫无意义。请注意,可以在屏幕控件上和带有显示弹出窗口的按钮控件上更改音量,但只能在屏幕控件上更改亮度。
您可以使用SeekBar
来显示亮度级别,从而实现代码。
通过获取当前亮度来设置当前亮度级别
Settings.System.getInt(getContext().getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS);
答案 1 :(得分:0)
在清单中添加权限:-
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
设置亮度:-
ContentResolver cResolver = this.getApplicationContext().getContentResolver();
Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, brightness);
您可以显示一个用于改变亮度的搜索栏:-
//Register OnSeekBarChangeListener, so it can actually change values
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()
{
public void onStopTrackingTouch(SeekBar seekBar)
{
//Set the system brightness using the brightness variable value
Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, brightness);
}
public void onStartTrackingTouch(SeekBar seekBar)
{
//Nothing handled here
}
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
{
}
});
}