Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Menerapkan Cahaya Malam

Penelitian menunjukkan bahwa cahaya biru dari layar dapat berdampak negatif pada tidur. Android 7.1.1 memperkenalkan fitur yang disebut Cahaya Malam yang mengurangi jumlah cahaya biru yang dipancarkan oleh tampilan perangkat agar lebih cocok dengan cahaya alami pada waktu dan lokasi pengguna. Android 8.0 memperkenalkan fitur tambahan yang memberi pengguna lebih banyak kontrol atas intensitas efek Cahaya Malam. Android 10 memperkenalkan layanan sistem COLOR_DISPLAY_SERVICE , dengan permukaan API sistem untuk memberi sistem, Setelan, dan UI Sistem lebih banyak kontrol atas semua transformasi warna, termasuk Cahaya Malam.

Cahaya Malam memerlukan implementasi Hardware Composer HAL 2.0 (HWC 2) yang dapat menerapkan matriks yang diteruskan ke setColorTransform untuk melakukan pewarnaan tanpa memengaruhi daya, kinerja, dan kompatibilitas aplikasi.

Penerapan

Produsen perangkat dapat mengaktifkan implementasi default fitur dengan menggunakan tanda berikut yang ditentukan di 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>

Kode tersebut dibagi antara framework, layanan sistem, UI Sistem, dan Pengaturan. Fungsionalitas inti dikontrol oleh ColorDisplayManager (didukung oleh ColorDisplayService ).

Produsen perangkat harus menyesuaikan jalur warna berdasarkan karakteristik panel tampilan perangkat, termasuk titik putih, gamut, dan warna yang diinginkan. Anda dapat mengubah color ramp tanpa mengubah implementasi dasar dengan menggunakan overlay konfigurasi. Konfigurasi ini dinyatakan sebagai persamaan kuadrat untuk masing-masing warna merah, hijau, dan biru, dalam bentuk v res = v a t 2 + v b t + v y-int di mana t adalah input suhu dalam Kelvin, seperti yang ditentukan pada rentang antara config_nightDisplayColorTemperatureMin dan config_nightDisplayColorTemperatureMax (seperti yang dijelaskan di bagian sebelumnya), dan v a , v b , dan v y-int adalah koefisien a, koefisien b, dan perpotongan y, untuk kurva primer yang diberikan, seperti ditunjukkan di bawah.

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

Fitur UI

Karena Cahaya Malam adalah fitur yang menghadap ke pengguna, pengguna harus dapat mengontrolnya. Ada implementasi penuh dari pengaturan di Android Open Source Project (AOSP) paket / aplikasi / proyek Pengaturan yang dapat dirujuk oleh produsen perangkat untuk implementasi Pengaturan mereka. Pelaksana harus menangani maksud Settings.ACTION_NIGHT_DISPLAY_SETTINGS untuk mengekspos setelan ini.

Pengaturan

Pengaturan untuk Cahaya Malam ada di Pengaturan> Tampilan> Cahaya Malam . Dari sana, pengguna dapat mempelajari tentang Cahaya Malam, mengatur jadwal, dan menyalakan atau mematikannya.

  • Nyalakan Secara Otomatis
    • Tidak Pernah: Lampu Malam tidak akan pernah menyala secara otomatis dan harus diaktifkan dengan pengalih Nyala / Mati manual.
    • Jadwal khusus: Cahaya Malam menyala pada waktu Mulai yang ditentukan [default: 10:30] dan mati pada waktu Akhir yang ditentukan [default: 6:30].
    • Matahari terbenam hingga matahari terbit: Cahaya Malam menyala saat matahari terbenam dan mati saat matahari terbit. Waktu matahari terbit dan terbenam tergantung pada lokasi perangkat dan waktu tahun.
  • On / Off: Toggle yang mengontrol kondisi Cahaya Malam saat ini. Negara bagian ini menghormati aturan otomatis yang ada. Misalnya, jika Cahaya Malam dinyalakan pada pukul 17:30 (sebelum aturan otomatis akan menyalakannya pada pukul 22:30), Cahaya Malam akan tetap mati pada pukul 6:30 dan jika Cahaya Malam dimatikan pada pukul 5 : 30 pagi (sebelum mati pada 6:30), masih akan menyala pada 10:30
  • Intensitas: Seekbar yang mengontrol tingkat warna dengan menggeser dari hangat ke dingin. Seekbar dapat dinonaktifkan saat Lampu Malam tidak diaktifkan.
  • Teks informasi: Mengajari pengguna apa yang dilakukan Cahaya Malam dan mengapa.

Pengaturan bersyarat

Dapat dilihat di bagian atas Pengaturan saat Lampu Malam menyala.

Ubin Pengaturan Cepat

Ubin Pengaturan Cepat berfungsi sama dengan tombol Nyala / Mati di Pengaturan> Tampilan> Cahaya Malam .