Показывать индикатор яркости при программном изменении android

Итак, у меня есть рабочий код для изменения яркости экрана, как в ответе ей -

Программное изменение яркости системы

Я просто нигде не могу найти, как я могу показать изменение полосы индикатора яркости устройства, когда пользователь меняет ее из приложения.

Например, для изменения громкости есть флаг, который сообщает ему показать пользовательский интерфейс (FLAG_SHOW_UI) -

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

Я пытаюсь добиться того же эффекта, но с параметром яркости.

Любые идеи?

0
0
169
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В отличие от громкости, здесь нет физической кнопки для изменения яркости, и поэтому нет смысла иметь всплывающее окно, указывающее на изменение яркости. Обратите внимание, что громкость можно изменить с помощью экранных элементов управления и с помощью кнопок управления, которые показывают всплывающее окно, но яркость может изменяться только с помощью экранных элементов управления.

Вы можете реализовать свой код, используя 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)
    {

    }
});
}

Другие вопросы по теме