Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Implementación de luz nocturna

La investigación sugiere que la luz azul de las pantallas puede tener un impacto negativo en el sueño. Android 7.1.1 introdujo una función llamada Luz nocturna que reduce la cantidad de luz azul emitida por la pantalla del dispositivo para adaptarse mejor a la luz natural de la hora del día y la ubicación del usuario. Android 8.0 introdujo una función adicional que brinda a los usuarios más control sobre la intensidad del efecto de luz nocturna. Android 10 presenta el servicio del sistema COLOR_DISPLAY_SERVICE , con una superficie de API del sistema para brindar al sistema, la configuración y la interfaz de usuario del sistema más control sobre todas las transformaciones de color, incluida la luz nocturna.

Night Light requiere una implementación de Hardware Composer HAL 2.0 (HWC 2) que pueda aplicar la matriz pasada a setColorTransform para realizar el teñido sin afectar la potencia, el rendimiento y la compatibilidad de la aplicación.

Implementación

Los fabricantes de dispositivos pueden habilitar la implementación predeterminada de la función mediante el uso de los siguientes indicadores definidos en frameworks/base/core/res/res/values/config.xml

 <!-- Control whether Night display is available. This should only be enabled
      on devices with HWC 2 color transform support. -->
 <bool name="config_nightDisplayAvailable">false</bool>
 <!-- Default mode to control how Night display is automatically activated.
      One of the following values (see NightDisplayController.java):
          0 - AUTO_MODE_DISABLED
          1 - AUTO_MODE_CUSTOM
          2 - AUTO_MODE_TWILIGHT
 -->
 <integer name="config_defaultNightDisplayAutoMode">0</integer>
 <!-- Default time when Night display is automatically activated.
      Represented as milliseconds from midnight (e.g. 79200000 == 10pm). -->
 <integer name="config_defaultNightDisplayCustomStartTime">79200000</integer>
 <!-- Default time when Night display is automatically deactivated.
      Represented as milliseconds from midnight (e.g. 21600000 == 6am). -->
 <integer name="config_defaultNightDisplayCustomEndTime">21600000</integer>

 <!-- Minimum color temperature, in Kelvin, supported by Night display. -->
 <integer name="config_nightDisplayColorTemperatureMin">2596</integer>
 <!-- Default color temperature, in Kelvin, to tint the screen when Night display is
      activated. -->
 <integer name="config_nightDisplayColorTemperatureDefault">2850</integer>
 <!-- Maximum color temperature, in Kelvin, supported by Night display. -->
 <integer name="config_nightDisplayColorTemperatureMax">4082</integer>

El código se divide entre el marco, los servicios del sistema, la interfaz de usuario del sistema y la configuración. La funcionalidad principal está controlada por ColorDisplayManager (respaldado por ColorDisplayService ).

Los fabricantes de dispositivos deben personalizar la rampa de color según las características del panel de visualización del dispositivo, incluido el punto blanco, la gama y el color deseado. Puede cambiar la rampa de color sin cambiar la implementación base utilizando una superposición de configuración. Esta configuración se expresa como una ecuación cuadrática para cada uno de los colores rojo, verde y azul, en la forma v res = v a t 2 + v b t + v y-int donde t es la entrada de temperatura en Kelvin, como se especifica en el rango entre config_nightDisplayColorTemperatureMin y config_nightDisplayColorTemperatureMax (como se describe en la sección anterior), y v a , v b y v y-int son el coeficiente a, el coeficiente b y la intersección y, respectivamente, para la curva primaria dada, como indicada a continuación.

    <string-array name="config_nightDisplayColorTemperatureCoefficientsNative">
        <!-- R a-coefficient --> <item>0.0</item>
        <!-- R b-coefficient --> <item>0.0</item>
        <!-- R y-intercept --> <item>1.0</item>
        <!-- G a-coefficient --> <item>-0.00000000962353339</item>
        <!-- G b-coefficient --> <item>0.000153045476</item>
        <!-- G y-intercept --> <item>0.390782778</item>
        <!-- B a-coefficient --> <item>-0.0000000189359041</item>
        <!-- B b-coefficient --> <item>0.000302412211</item>
        <!-- B y-intercept --> <item>-0.198650895</item>
    </string-array>

    <string-array name="config_nightDisplayColorTemperatureCoefficients">
        <!-- R a-coefficient --> <item>0.0</item>
        <!-- R b-coefficient --> <item>0.0</item>
        <!-- R y-intercept --> <item>1.0</item>
        <!-- G a-coefficient --> <item>-0.00000000962353339</item>
        <!-- G b-coefficient --> <item>0.000153045476</item>
        <!-- G y-intercept --> <item>0.390782778</item>
        <!-- B a-coefficient --> <item>-0.0000000189359041</item>
        <!-- B b-coefficient --> <item>0.000302412211</item>
        <!-- B y-intercept --> <item>-0.198650895</item>
    </string-array>

Características de la interfaz de usuario

Debido a que Night Light es una función para el usuario, los usuarios deben poder controlarla. Hay una implementación completa de la configuración en los paquetes / aplicaciones / proyecto de configuración del Proyecto de código abierto de Android (AOSP) que los fabricantes de dispositivos pueden consultar para su implementación de configuración. Los implementadores deben manejar la intención de Settings.ACTION_NIGHT_DISPLAY_SETTINGS para exponer esta configuración.

Ajustes

La configuración de Luz nocturna se encuentra en Configuración> Pantalla> Luz nocturna . Desde allí, los usuarios pueden aprender sobre Night Light, establecer su horario y encenderlo o apagarlo.

  • Encender automáticamente
    • Nunca: la luz nocturna nunca se encenderá automáticamente y debe activarse con el interruptor manual de encendido / apagado .
    • Horario personalizado: la luz nocturna se enciende a una hora de inicio especificada [predeterminado: 10:30 p. M.] Y se apaga a una hora de finalización especificada [predeterminado: 6:30 a. M.].
    • Desde el atardecer hasta el amanecer: la luz nocturna se enciende al atardecer y se apaga al amanecer. La hora del amanecer y el atardecer depende de la ubicación del dispositivo y la época del año.
  • Activado / Desactivado: palanca que controla el estado actual de la luz nocturna. Este estado respeta las reglas automáticas existentes. Por ejemplo, si Night Light se enciende a las 5:30 p. M. (Antes de que la regla automática la encienda a las 10:30 p. M.), Night Light seguirá apagándose a las 6:30 a. M. Y si Night Light se apaga a las 5:00 p. M. : 30 a. M. (Antes de que se apague a las 6:30 a. M.), Todavía se encenderá a las 10:30 p. M.
  • Intensidad: barra de búsqueda que controla el nivel de tinte deslizándose de cálido a frío. La barra de búsqueda se puede desactivar cuando la luz nocturna no está activada.
  • Texto informativo: enseña al usuario qué hace Night Light y por qué.

Configuración condicional

Visible en la parte superior de Configuración cuando la luz nocturna está encendida.

Mosaico de configuración rápida

El mosaico de Configuración rápida se comporta de manera idéntica al botón Activar / Desactivar en Configuración> Pantalla> Luz nocturna .