Итак, у меня есть рабочий код для изменения яркости экрана, как в ответе ей -
Программное изменение яркости системы
Я просто нигде не могу найти, как я могу показать изменение полосы индикатора яркости устройства, когда пользователь меняет ее из приложения.
Например, для изменения громкости есть флаг, который сообщает ему показать пользовательский интерфейс (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)
{
}
});
}