【问题标题】:How to detect if night mode is activated?如何检测是否激活了夜间模式?
【发布时间】:2020-10-04 12:16:16
【问题描述】:

我需要知道夜间模式是否已激活,使用布尔值或 int,我找到了一个检测但它仅适用于 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 是一种文本编辑器,而不是一种编程语言。您使用的是 Java 还是 Kotlin 或其他?
  • 我正在用java编程

标签: android-studio


【解决方案1】:

Google 或在 developer.android.com 上搜索。我找到了similar question on StackOverflow。 这是该问题的 kotlin 代码

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

【讨论】:

  • 在 java 中会怎样
  • @jose moya,看这篇文章-> blog.mindorks.com/…
  • 我已经这样做了,但没有任何反应,它没有给我一个整数或布尔值来告诉我手机是否已激活或处于夜间模式
  • 它应该以字符串或任何其他类型返回 true 或 false 或 UI 模式。它应该返回一些东西。
  • 你可以看到我的尝试,我刚刚编辑了我的原始帖子我仍然没有得到任何数据
猜你喜欢
  • 2013-02-24
  • 1970-01-01
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-10
相关资源
最近更新 更多