Agregar controles de brillo de pantalla a la aplicación de Android

Estoy buscando agregar controles para ajustar el brillo de la pantalla localmente en el menú de mi aplicación, pero parece que no puedo encontrar la manera de hacerlo. He visto ejemplos para maximizar o atenuar el brillo, pero estoy buscando agregar controles para que el usuario pueda controlar y establecer el nivel de brillo. ¿Alguien tiene ejemplos, tutoriales, código fuente o solo un lugar para dirigirme en la dirección correcta?

Internet dice que esto funciona, pero aún no lo he probado:

WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.screenBrightness = 100 / 100.0f; getWindow().setAttributes(lp); 

Puede cambiar la configuración de brillo del usuario de esta manera (asegúrese de declarar el permiso para WRITE_SETTINGS en el manifiesto)

 android.provider.Settings.System.putInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS, brightpref); 

La documentación llama a esa configuración de 0 a 255. Estoy tratando de averiguar si apaga la pantalla en 0, ya que en un momento tuve un widget instalado con un control deslizante y la pantalla se apagaría si configuraste a 0.

Esto es respondido por una pregunta similar.

La única diferencia es que querrá vincular el miembro screenBrightness con el valor de un control de interfaz de usuario.

Tenga en cuenta que esto puede no funcionar como se espera en los dispositivos que tienen sensores de atenuación automática.