Gece ışığını uygulayın

Araştırmalar ekranlardan gelen mavi ışığın uyku üzerinde olumsuz bir etkisi olabileceğini öne sürüyor. Android 7.1.1, kullanıcının günün saatine ve konumuna göre doğal ışıkla daha iyi eşleşmesi için cihaz ekranının yaydığı mavi ışık miktarını azaltan Gece Işığı adı verilen bir özelliği kullanıma sundu. Android 8.0, kullanıcılara Gece Işığı efektinin yoğunluğu üzerinde daha fazla kontrol sağlayan ek bir özellik sundu. Android 10, sisteme, Ayarlara ve Sistem Kullanıcı Arayüzüne Gece Işığı dahil tüm renk dönüşümleri üzerinde daha fazla kontrol sağlayan bir sistem API yüzeyiyle COLOR_DISPLAY_SERVICE sistem hizmetini sunar.

Night Light, gücü, performansı ve uygulama uyumluluğunu etkilemeden renklendirme gerçekleştirmek için setColorTransform iletilen matrisi uygulayabilen bir Hardware Composer HAL 2.0 (HWC 2) uygulaması gerektirir.

Uygulama

Cihaz üreticileri 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>
tanımlanan aşağıdaki işaretleri kullanarak özelliğin varsayılan uygulamasını etkinleştirebilir

Kod çerçeve, sistem hizmetleri, Sistem Kullanıcı Arayüzü ve Ayarlar arasında bölünmüştür. Temel işlevsellik ColorDisplayManager ( ColorDisplayService tarafından desteklenir) tarafından kontrol edilir.

Cihaz üreticileri, renk rampasını, beyaz nokta, gam ve istenen renk dahil olmak üzere cihazın ekran panelinin özelliklerine göre özelleştirmelidir. Bir yapılandırma katmanı kullanarak temel uygulamayı değiştirmeden renk rampasını değiştirebilirsiniz. Bu konfigürasyon kırmızı, yeşil ve mavinin her biri için v res = v a t 2 + v b t + v y-int biçiminde ikinci dereceden bir denklem olarak ifade edilir; burada t, Şekilde belirtildiği gibi Kelvin cinsinden sıcaklık girişidir. config_nightDisplayColorTemperatureMin ve config_nightDisplayColorTemperatureMax (önceki bölümde açıklandığı gibi) arasındaki aralık ve va , vb ve v y-int, verilen birincil eğri için sırasıyla a-katsayısı, b-katsayısı ve y-kesişimidir; aşağıda belirtilmiştir.

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

Kullanıcı arayüzü özellikleri

Gece Işığı kullanıcıya yönelik bir özellik olduğundan kullanıcıların onu kontrol edebilmesi gerekir. Android Açık Kaynak Projesi (AOSP) paketleri/uygulamaları/Ayarlar projesinde, cihaz üreticilerinin Ayarlar uygulamaları için başvurabilecekleri ayarların tam bir uygulaması bulunmaktadır. Bu ayarın kullanıma sunulması için Settings.ACTION_NIGHT_DISPLAY_SETTINGS amacını uygulayıcıların ele alması gerekir.

Ayarlar

Gece Işığı ayarları Ayarlar > Ekran > Gece Işığı bölümündedir. Kullanıcılar buradan Gece Işığı hakkında bilgi edinebilir, programını ayarlayabilir ve açıp kapatabilir.

  • Otomatik Olarak Aç
    • Hiçbir zaman: Gece Işığı hiçbir zaman otomatik olarak açılmaz ve manuel Açma/Kapama düğmesiyle etkinleştirilmesi gerekir.
    • Özel program: Gece Işığı belirli bir Başlangıç ​​saatinde [varsayılan: 22:30] açılır ve belirli bir Bitiş saatinde [varsayılan: 6:30] kapanır.
    • Gün batımından gün doğumuna: Gece Işığı gün batımında açılır ve gün doğumunda kapanır. Gün doğumu ve gün batımının saati cihazın konumuna ve yılın zamanına bağlıdır.
  • Açık / Kapalı: Gece Işığının mevcut durumunu kontrol eden geçiş yapın. Bu durum mevcut otomatik kurallara uyar. Örneğin, Gece Işığı saat 17:30'da açılırsa (otomatik kuralın saat 22:30'da açılmasından önce), Gece Işığı sabah 6:30'da kapanmaya devam eder. Gece Işığı saat 5'te kapatılırsa :30 am (sabah 6:30'da kapanmadan önce), 22:30'da açılmaya devam edecek
  • Yoğunluk: Sıcaktan soğuğa kaydırarak renk tonu seviyesini kontrol eden arama çubuğu . Gece Işığı etkinleştirilmediğinde arama çubuğu devre dışı bırakılabilir.
  • Bilgilendirici metin: Kullanıcıya Gece Işığının ne yaptığını ve nedenini öğretir.

Ayarlar koşullu

Gece Işığı açıkken Ayarlar'ın üst kısmında görünür.

Hızlı Ayarlar kutucuğu

Hızlı Ayarlar kutucuğu, Ayarlar > Ekran > Gece Işığı bölümündeki Açık/Kapalı düğmesiyle aynı şekilde davranır.