我已经看到了很多关于在堆栈溢出时检测暗模式的问题,并访问了许多中型博客,例如如何知道您何时以编程方式使用暗模式和DayNight — 向您的应用程序添加暗主题并在所有这些中执行像这样的支票:
fun isNightModeEnabled(context: Context): Boolean =
context.resources.configuration.uiMode.and(UI_MODE_NIGHT_MASK) ==
UI_MODE_NIGHT_YES
这适用于任何手机,甚至是运行 Android One 的小米手机,但不适用于运行 MIUI 的小米智能手机。
对于运行 MIUI 的小米设备:
context.resources.configuration.uiMode
=17
和context.resources.configuration.uiMode.and(UI_MODE_NIGHT_MASK)
=16
UI_MODE_NIGHT_YES (32)
与启用或禁用暗模式时总是返回 false 相比。
是否真的可以检测到此类设备已强制使用暗模式?