Badania pokazują, że niebieskie światło ekranów może mieć negatywny wpływ na
sen. W Androidzie 7.1.1 wprowadzono funkcję Podświetlenie nocne, która zmniejsza
ilość niebieskiego światła emitowanego przez wyświetlacz urządzenia, aby lepiej pasowały do naturalnego
w zależności od pory dnia i lokalizacji użytkownika. W Androidzie 8.0 wprowadziliśmy
funkcja, która daje użytkownikom większą kontrolę nad intensywnością efektu Podświetlenia nocnego.
Android 10 wprowadza
Usługa systemowa COLOR_DISPLAY_SERVICE
z systemowym interfejsem API
aby dać systemowi, Ustawieniaom i interfejsowi systemu większą kontrolę nad wszystkimi kolorami
przekształcenia, w tym Podświetlenie nocne.
Podświetlenie nocne wymaga:
Sprzęt
Implementacja usługi Composer HAL 2.0 (HWC 2), która może zastosować macierz przekazaną do
setColorTransform
, aby barwić bez wpływu na zasilanie.
wydajność i zgodność z aplikacjami.
Implementacja
Producenci urządzeń mogą włączyć domyślną implementację przez
przy użyciu następujących flag zdefiniowanych w
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>
Kod jest podzielony na platformę, usługi systemowe, interfejs systemu i ustawienia.
główną funkcjonalność jest kontrolowane przez: ColorDisplayManager
(wspierany przez
ColorDisplayService
).
Producenci urządzeń powinni dostosować skalę kolorów na podstawie
na panelu wyświetlacza urządzenia, w tym z punktem bieli, paletą i wybranym kolorem. Możesz zmienić
barwy za pomocą nakładki konfiguracji bez zmiany implementacji podstawowej.
Ta konfiguracja jest wyrażona jako równanie kwadratowe dla każdego z kolorów: czerwonego, zielonego i niebieskiego,
w formacie vres = vat2 + vbt + vy-int
gdzie t to wartość temperatury podana w kelwinach, określona jako wartość od
config_nightDisplayColorTemperatureMin
i
config_nightDisplayColorTemperatureMax
(zgodnie z opisem
w poprzedniej sekcji), a parametry va, vb i y-int to
współczynnik a, współczynnik b i punkt przecięcia z osią y dla krzywej danego pierwiastka,
jak opisano poniżej.
<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>
Funkcje interfejsu
Podświetlenie nocne jest funkcją dostępną dla użytkowników, dlatego musi mieć możliwość
. Ustawienia są w pełni wdrażane na platformie Android Open Source,
Projekt (AOSP)
pakiety/aplikacje/ustawienia
które producenci urządzeń mogą sprawdzić w Ustawieniach.
implementacji. Implementatory muszą obsługiwać
Settings.ACTION_NIGHT_DISPLAY_SETTINGS
do udostępnienia tego ustawienia.
Ustawienia
Ustawienia Podświetlenia nocnego znajdziesz w sekcji Ustawienia > Wyświetlacz > Noc Jasny. Tam użytkownicy mogą dowiedzieć się więcej o Podświetleniu nocnym, ustawić jego harmonogram i włącz lub wyłącz tę funkcję.
- Włącz automatycznie
- Nigdy: Podświetlenie nocne nigdy nie będzie włączać się automatycznie i musi być włączony ręcznie przełącznikiem Wł./Wył.
- Niestandardowy harmonogram: Podświetlenie nocne włącza się o określonej godzinie Godzina rozpoczęcia [domyślnie: 22:30] i wyłączona o określonej godzinie Godzina zakończenia [domyślnie: 6:30.].
- Od zachodu do wschodu słońca: podświetlenie nocne włącza się i wyłącza o zachodzie słońca. o wschodzie słońca. Czas wschodu i zachodu słońca zależy od lokalizacji urządzenia czy pory roku.
- Wł./Wył.: przełącznik określający obecny stan trybu nocnego. Lekkie. Ten stan uwzględnia istniejące reguły automatyczne. Na przykład, jeśli tryb nocny Światło jest włączone o 17:30. (zanim reguła automatyczna spowoduje jego włączenie godz. 22:30), Podświetlenie nocne nadal wyłączy się o 6:30, a jeśli jest noc Światło zostanie wyłączone o 5:30 (zanim wyłączy się o 6:30), włącz o 22:30.
- Intensywność: Pasek przewijania reguluje poziom odcienia, przechodząc z ciepłego na zimny. Pasek przewijania może być wyłączone, gdy Podświetlenie nocne jest wyłączone.
- Tekst informacyjny: zawiera informacje na temat działania Podświetlenia nocnego. i dlaczego.
Ustawienia warunkowe
Widoczne u góry Ustawień przy włączonym Podświetleniu nocnym.
kafelek Szybkich ustawień
Kafelek Szybkie ustawienia działa tak samo jak karta Wł./Wył. przełącz w Ustawieniach > Wyświetlacz > Podświetlenie nocne