¿Cómo maximizar/minimizar el brillo de la pantalla mediante programación en Android?

El brillo de la pantalla es uno de esos factores que afecta directamente a los usuarios, así como a la batería de un dispositivo. Los dispositivos Android son sistemas inteligentes y tienen un sistema incorporado para el brillo automático. Pero la mayoría de las veces esta función no está marcada por los usuarios o está desactivada de forma predeterminada. Independientemente de si esta característica está presente, activada o desactivada, o ausente en algún dispositivo, un desarrollador debe tener en cuenta esta oportunidad y desarrollar una aplicación optimizada. Cualquier cosa que se declare dentro de la aplicación puede tener un efecto en el espacio exterior, es decir, si el brillo de la pantalla se cambió mediante programación desde una aplicación, el valor del brillo puede permanecer inalterado incluso después de salir de la aplicación. Entonces, uno debe intentar rastrear los originales y configurarlos antes de que un usuario salga.

¿Dónde podemos usar esta característica?

  1. Aplicaciones Transmisión de videos: cada cuadro se puede analizar y comparar con la luz ambiental de la habitación y, en consecuencia, realizar cambios mientras se lo ve a los usuarios.
  2. Situaciones de batería baja: el brillo se puede establecer en un valor bajo si el nivel de la batería es bajo.
  3. Si la pantalla está inactiva o no responde: si la pantalla está inactiva o no responde, el brillo podría reducirse después de un tiempo de espera específico.

idioma.

Acercarse

Paso 1: Crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.

Paso 2: trabajar con el archivo AndroidManifest.xml

Controlar el brillo de la pantalla del dispositivo requiere un cambio en la configuración raíz, para lo cual se declara un permiso de uso de WRITE_SETTINGS en el archivo AndroidManifest.xml .

<usos-permiso android:name=”android.permission.WRITE_SETTINGS”

       herramientas: ignorar = «Permisos protegidos» />

AndroidManifest.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="org.geeksforgeeks.playingwithbrightness">
  
      <!--Add this permission-->
    <uses-permission android:name="android.permission.WRITE_SETTINGS"
        tools:ignore="ProtectedPermissions" />
  
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
  
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
  
</manifest>

Paso 3: trabajar con el archivo activity_main.xml

A continuación, vaya al archivo activity_main.xml , que representa la interfaz de usuario del proyecto. Agregue dos botones como se muestra, uno para que el valor de brillo sea máximo y el otro para que sea mínimo. actividad_principal.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <!--This button will make the brightness minimum-->
    <Button
        android:id="@+id/turn_off_screen_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Turn Off Screen"
        tools:ignore="MissingConstraints" />
  
    <!--This button will make the brightness maximum-->
    <Button
        android:id="@+id/turn_on_screen_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/turn_off_screen_button"
        android:layout_centerHorizontal="true"
        android:text="Turn On Screen"
        tools:ignore="MissingConstraints" />
  
</RelativeLayout>

Paso 4: trabajar con el archivo MainActivity.kt

Finalmente, vaya al archivo MainActivity.kt y consulte el siguiente código. MainActivity.kt

Kotlin

import android.content.Context
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.widget.Button
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
    @RequiresApi(Build.VERSION_CODES.M)
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Get turn off screen button
        val turnOffScreenButton: Button = findViewById(R.id.turn_off_screen_button)
        turnOffScreenButton.setOnClickListener { // Get app context object.
            val context = applicationContext
  
            // Check whether has the write settings permission or not.
            val settingsCanWrite = hasWriteSettingsPermission(context)
  
            // If do not have then open the Can modify system settings panel.
            if (!settingsCanWrite) {
                changeWriteSettingsPermission(context)
            } else {
                changeScreenBrightness(context, 1)
            }
        }
          
        // Get turn on screen button
        val turnOnScreenButton: Button = findViewById(R.id.turn_on_screen_button)
        turnOnScreenButton.setOnClickListener {
            val context = applicationContext
  
            // Check whether has the write settings permission or not.
            val settingsCanWrite = hasWriteSettingsPermission(context)
  
            // If do not have then open the Can modify system settings panel.
            if (!settingsCanWrite) {
                changeWriteSettingsPermission(context)
            } else {
                changeScreenBrightness(context, 255)
            }
        }
    }
  
    // Check whether this app has android write settings permission.
    @RequiresApi(Build.VERSION_CODES.M)
    private fun hasWriteSettingsPermission(context: Context): Boolean {
        var ret = true
        // Get the result from below code.
        ret = Settings.System.canWrite(context)
        return ret
    }
  
    // Start can modify system settings panel to let user change the write
    // settings permission.
    private fun changeWriteSettingsPermission(context: Context) {
        val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS)
        context.startActivity(intent)
    }
  
    // This function only take effect in real physical android device,
    // it can not take effect in android emulator.
    private fun changeScreenBrightness(
        context: Context,
        screenBrightnessValue: Int
    ) {   // Change the screen brightness change mode to manual.
        Settings.System.putInt(
            context.contentResolver,
            Settings.System.SCREEN_BRIGHTNESS_MODE,
            Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
        )
        // Apply the screen brightness value to the system, this will change
        // the value in Settings ---> Display ---> Brightness level.
        // It will also change the screen brightness for the device.
        Settings.System.putInt(
            context.contentResolver, Settings.System.SCREEN_BRIGHTNESS, screenBrightnessValue
        )
    }
}

Salida: ejecutar en el emulador

Tenga en cuenta que antes de ejecutar la aplicación, asegúrese de haber otorgado los permisos necesarios ; de lo contrario, la aplicación se bloqueará.

Publicación traducida automáticamente

Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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