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.