Cambio de brillo de software en dispositivos Android – Hitesh Sahu

Quería que el brillo se reflejara tanto en el nivel del sistema como en la interfaz de usuario. Ninguna de las respuestas anteriores funcionó para mí. Al final, este enfoque funcionó para mí.

Agregar permisos de escritura al manifiesto de Android

<uses-permission android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions"/>

Las configuraciones de escritura son configuraciones protegidas, así que solicite al usuario que habilite la configuración del sistema de escritura:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (Settings.System.canWrite(this)) {
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
}
}

Si su aplicación está firmada con certificados del sistema, su aplicación tendrá estos permisos de forma predeterminada.

Ahora puede ajustar fácilmente el brillo

ContentResolver cResolver = getContentResolver();
Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, brightness);

brighness el valor debe estar en el rango 0-255, por lo que si tiene un planeador con un rango (0-max), puede normalizar el valor en el rango (0-255)

private float normalize(float x, float inMin, float inMax, float outMin, float outMax) {
float outRange = outMax - outMin;
float inRange = inMax - inMin;
return (x - inMin) *outRange / inRange + outMin;
}

FinorteAliado, ahora puede cambiar el rango del control deslizante 0-10 a 0-255

float brightness = normalize(progress, 0, 10, 0.0f, 255.0f);

Espero que le ahorre tiempo a alguien.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *