【发布时间】:2018-05-09 18:47:11
【问题描述】:
我正在寻找一种使用 Android 代码以编程方式启用夜间模式的方法:
public static void setNightMode(Context target, boolean state){
UiModeManager uiManager = (UiModeManager) target.getSystemService(Context.UI_MODE_SERVICE);
if (state) {
//uiManager.enableCarMode(0);
uiManager.setNightMode(UiModeManager.MODE_NIGHT_YES);
} else {
// uiManager.disableCarMode(0);
uiManager.setNightMode(UiModeManager.MODE_NIGHT_NO);
}
}
我的屏幕上没有任何变化,夜间模式仍处于禁用状态。 据此link
无需启用 carMode 或deskMode。 我在 Android Studio 上有以下 logcat:
11-26 12:15:16.662 3823-3823/? D/UiModeManager: updateConfigurationLocked: mDockState=0; mCarMode=false; mNightMode=2; uiMode=33
11-26 12:15:26.802 3823-3823/? V/UiModeManager: updateLocked: null action, mDockState=0, category=null
【问题讨论】:
-
我想在任何地方更改夜间模式,而不是在我的应用程序中。我不需要切换某些主题。
-
你检查过这个注释了吗? “注意:在 API 22 及更低版本中,只有在设备上启用了汽车或桌面模式时,对夜间模式的更改才有效。从 API 23 开始,对夜间模式的更改始终有效。”
-
你能解决这个问题吗?我正在努力使用 setNightMode,但无法在 Android 10 或 11 上使用它
标签: android android-dark-theme android-night-mode android-darkmode