以编程方式更改时显示亮度指示条 android

Show brightness indicator bar when changed programmatically android

所以我有一个工作代码可以像她的回答一样改变屏幕的亮度 -

Change the System Brightness Programmatically

我只是找不到任何地方如何显示设备的亮度指示条在用户从应用程序更改时发生变化。

例如,为了改变音量,有一个标志告诉它显示 UI (FLAG_SHOW_UI) -

mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, newStreamVolume, AudioManager.FLAG_SHOW_UI);

我试图在亮度参数上实现相同的效果。

有什么想法吗?

与音量不同,没有物理按钮可以改变亮度,因此弹出指示亮度变化变得毫无意义。请注意,音量可以在屏幕控件和显示弹出窗口的按钮控件上更改,但亮度只能在屏幕控件上更改。

您可以通过使用 SeekBar 来显示亮度级别来实现您的代码。 通过获取当前亮度设置当前亮度级别

Settings.System.getInt(getContext().getContentResolver(), 
         Settings.System.SCREEN_BRIGHTNESS);

在清单中添加权限:-

<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)
    {

    }
});
}