Nghiên cứu cho thấy ánh sáng xanh từ màn hình có thể có tác động tiêu cực đến
ngủ. Android 7.1.1 giới thiệu một tính năng có tên là Ánh sáng đêm, giúp giảm
lượng ánh sáng màu xanh dương do màn hình thiết bị phát ra để phù hợp hơn với môi trường tự nhiên
dựa trên thời gian trong ngày và vị trí của người dùng. Android 8.0 đã bổ sung một tính năng
giúp người dùng có nhiều quyền kiểm soát hơn đối với cường độ của hiệu ứng Ánh sáng đêm.
Android 10 ra mắt
Dịch vụ hệ thống COLOR_DISPLAY_SERVICE
, với một API hệ thống
để mang lại cho hệ thống, Cài đặt và Giao diện người dùng hệ thống nhiều quyền kiểm soát hơn đối với tất cả màu sắc
biến đổi, bao gồm cả Ánh sáng đêm.
Chế độ Ánh sáng đêm cần có
Phần cứng
Triển khai HAL 2.0 (HWC 2) của trình soạn thảo có thể áp dụng ma trận được truyền đến
setColorTransform
để phủ màu mà không ảnh hưởng đến nguồn điện,
hiệu suất và khả năng tương thích của ứng dụng.
Triển khai
Nhà sản xuất thiết bị có thể bật chế độ triển khai mặc định của tính năng này bằng cách
bằng cách sử dụng cờ sau được xác định trong
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>
Mã này được chia thành khung, dịch vụ hệ thống, Giao diện người dùng hệ thống và Cài đặt. Chiến lược phát hành đĩa đơn
chức năng cốt lõi do ColorDisplayManager
kiểm soát (được hỗ trợ bởi
ColorDisplayService
).
Các nhà sản xuất thiết bị nên tuỳ chỉnh dải màu dựa trên các đặc điểm của
bảng điều khiển hiển thị của thiết bị, bao gồm điểm trắng, gam màu và màu mong muốn. Bạn có thể thay đổi
đoạn đường màu sắc mà không cần thay đổi cách triển khai cơ sở bằng cách sử dụng lớp phủ cấu hình.
Cấu hình này được biểu thị dưới dạng phương trình bậc hai cho mỗi màu đỏ, xanh lục và xanh dương,
có dạng vres = vat2 + vbt + vy-int
trong đó t là nhiệt độ đầu vào, tính bằng độ K, như được chỉ định trong khoảng giữa
config_nightDisplayColorTemperatureMin
và
config_nightDisplayColorTemperatureMax
(như được mô tả
trong phần trước) và va, vb và vy-int là
hệ số a, hệ số b và giao điểm y tương ứng với đường cong sơ cấp,
như trình bày dưới đây.
<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>
Các tính năng giao diện người dùng
Vì Ánh sáng đêm là một tính năng dành cho người dùng nên người dùng cần phải điều khiển được
nó. Có triển khai đầy đủ các cài đặt trong Nguồn mở Android
Dự án (AOSP)
gói/ứng dụng/Cài đặt
dự án mà nhà sản xuất thiết bị có thể tham khảo cho Cài đặt của họ
trong quá trình triển khai. Trình triển khai phải xử lý
Settings.ACTION_NIGHT_DISPLAY_SETTINGS
ý định hiển thị chế độ cài đặt này.
Cài đặt
Các cài đặt cho Ánh sáng đêm nằm trong Cài đặt > Hiển thị > Buổi đêm Nhẹ. Từ đó, người dùng có thể tìm hiểu về chế độ Ánh sáng đêm, đặt lịch cho chế độ này, rồi bật hoặc tắt tính năng này.
- Tự động bật
- Không bao giờ: Chế độ Ánh sáng đêm sẽ không bao giờ tự động bật và phải được kích hoạt bằng nút bật/tắt Bật/Tắt thủ công.
- Lịch biểu tùy chỉnh: Chế độ Ánh sáng đêm bật vào một khoảng thời gian nhất định Thời gian bắt đầu [mặc định: 10:30 tối] và tắt vào một thời điểm được chỉ định Thời gian kết thúc [mặc định: 6:30 sáng].
- Tối đến sáng: Chế độ ánh sáng đêm bật lúc hoàng hôn và tắt lúc mặt trời mọc. Thời gian mặt trời mọc và mặt trời lặn phụ thuộc vào vị trí thiết bị và thời gian trong năm.
- Bật/Tắt: Nút bật/tắt kiểm soát trạng thái hiện tại của Chế độ ban đêm Sáng. Trạng thái này tuân theo các quy tắc tự động hiện có. Ví dụ: nếu Ban đêm Đèn được bật lúc 5:30 chiều. (trước khi quy tắc tự động bật lúc 22:30), Chế độ Ánh sáng đêm vẫn sẽ tắt lúc 6:30 sáng Nếu là chế độ Ban đêm Đèn được tắt lúc 5:30 sáng (trước khi tắt lúc 6:30 sáng), nó sẽ vẫn bật lúc 10:30 tối.
- Cường độ: Thanh tìm kiếm kiểm soát mức độ phủ màu bằng cách trượt từ ấm sang làm mát. Thanh tua có thể sẽ tắt khi chế độ Ánh sáng đêm không được kích hoạt.
- Văn bản cung cấp thông tin: Hướng dẫn người dùng chức năng của chế độ Ánh sáng đêm và lý do.
Chế độ cài đặt có điều kiện
Hiển thị ở đầu Cài đặt khi chế độ Ánh sáng đêm bật.
Ô Cài đặt nhanh
Ô Cài đặt nhanh hoạt động giống hệt như ô Bật / Tắt bật/tắt trong phần Cài đặt > Hiển thị > Ánh sáng đêm.