Activer l'éclairage nocturne

Des études suggèrent que la lumière bleue des écrans peut avoir un impact négatif sur de sommeil. Android 7.1.1 a introduit une fonctionnalité appelée Éclairage nocturne qui réduit la la quantité de lumière bleue émise par l'écran de l'appareil pour mieux correspondre de l'heure et de l'emplacement de l'utilisateur. Android 8.0 propose qui permet aux utilisateurs de mieux contrôler l'intensité de l'effet Éclairage nocturne. Android 10 introduit Service système COLOR_DISPLAY_SERVICE, avec une API système pour donner au système, aux paramètres et à l'UI du système plus de contrôle sur toutes les couleurs de transformation, y compris l'éclairage nocturne.

L'éclairage nocturne requiert Matériel Implémentation HAL 2.0 de Composer HAL 2.0 (HWC 2) pouvant appliquer la matrice transmise à setColorTransform pour réaliser les teintes sans nuire �� l'énergie, les performances et la compatibilité des applications.

Implémentation

Les fabricants d'appareils peuvent activer l'implémentation par défaut de la fonctionnalité en à l'aide des options suivantes définies 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>

Le code est réparti entre le framework, les services système, l'UI du système et les paramètres. La les fonctionnalités de base sont contrôlées par ColorDisplayManager (soutenu par ColorDisplayService).

Les fabricants d'appareils doivent personnaliser la palette de couleurs en fonction des caractéristiques panneau d'affichage de l'appareil, avec le point blanc, la gamme et la couleur souhaitée. Vous pouvez modifier une palette de couleurs sans modifier l'implémentation de base via une superposition de configuration. Cette configuration est exprimée sous la forme d'une équation du second degré pour le rouge, le vert et le bleu, au format vres = vat2 + vbt + vy-int où t est la température saisie en Kelvin, comme spécifié dans la plage entre config_nightDisplayColorTemperatureMin et config_nightDisplayColorTemperatureMax (tel que décrit comme dans la section précédente), et va, vb et vy-int sont les le coefficient a, le coefficient b et le point d'intersection avec l'axe des ordonnées, respectivement, pour la courbe d'une instance primaire donnée, comme indiqué ci-dessous.

    <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>

Fonctionnalités de l'interface utilisateur

Comme l'éclairage nocturne est une fonctionnalité visible par l'utilisateur, celui-ci doit pouvoir contrôler Il existe une implémentation complète des paramètres dans le kit de développement logiciel Open Source d'Android. Projet (AOSP) packages/apps/Settings ; projet que les fabricants d'appareils peuvent référencer pour leurs paramètres la mise en œuvre. Les responsables de l'implémentation doivent gérer Settings.ACTION_NIGHT_DISPLAY_SETTINGS pour présenter ce paramètre.

Paramètres

Les paramètres de l'éclairage nocturne se trouvent dans Paramètres > Affichage > Nuit Lumière. Les utilisateurs peuvent alors en savoir plus sur l'éclairage nocturne, définir sa programmation, et l'activer ou le désactiver.

  • Activer automatiquement <ph type="x-smartling-placeholder">
      </ph>
    • Jamais:l'éclairage nocturne ne s'active jamais automatiquement et doit être activée à l'aide du bouton Activé / Désactivé manuel.
    • Programmation personnalisée:l'éclairage nocturne s'active à l'heure spécifiée Heure de début [par défaut: 22:30] et décalée à une heure spécifiée Heure de fin [par défaut : 6h30].
    • Du coucher au lever du soleil:l'éclairage nocturne s'active au coucher du soleil et se désactive. au lever du soleil. Les heures de lever et de coucher du soleil dépendent de la position de l'appareil et la période de l'année.
  • Activé / Désactivé:option permettant de contrôler l'état actuel de la nuit Léger. Cet état respecte les règles automatiques existantes. Par exemple, si la fonction L'éclairage est activé à 17h30. (avant que la règle automatique ne l'active à 22 h 30), L'éclairage nocturne s'éteint quand même à 6h30. L'éclairage est éteint à 5h30 (avant de s'éteindre à 6h30), reste allumé à 22 h 30.
  • Intensité: Barre de recherche qui contrôle le niveau de teinte en le faisant glisser de chaud à froid. La barre de recherche peut être désactivé lorsque l'éclairage nocturne n'est pas activé.
  • Texte informatif:explique à l'utilisateur ce que fait l'éclairage nocturne. et pourquoi.

Paramètres conditionnels

Visible en haut des paramètres lorsque l'éclairage nocturne est activé.

bloc Réglages rapides

Le bloc "Réglages rapides" se comporte de la même manière que l'option Activer / Désactiver activer/désactiver dans Paramètres > Affichage > Éclairage nocturne.