首页 > 解决方案 > 如何检测是否激活了夜间模式?

问题描述

我需要知道是否激活了夜间模式,使用布尔值或整数,我发现了一个布尔值,可以检测但它只能从 andorid R isnightmodeactive () 工作,我找不到另一种方法来知道夜间模式是否被激活,任何想法

我做了这个测试,但我像以前一样继续它没有抛出任何东西,我不知道如何知道我的设备处于什么模式,晚上或白天

    public double isDark(int a) {
    return a;
     }  

 public void nightmode(){

            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
            if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_YES){
                isDark(1);
            }else if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
                isDark(2);
            }

}

标签: android-studio

解决方案


谷歌它或在 developer.android.com 上搜索。我在 StackOverflow 上发现了一个类似的问题。这是该问题的 kotlin 代码

fun Context.isDarkThemeOn(): Boolean{
    return resources.configuration.uiMode and 
            Configuration.UI_MODE_NIGHT_MASK == UI_MODE_NIGHT_YES
}

推荐阅读