首页 > 解决方案 > 检查开发设置的功能未按预期工作

问题描述

我有一个功能可以检查是否启用了开发人员模式,如下所示:

Android - 如何检查开发者选项是否启用

这是代码:

public boolean isDevMode() {
    if(Build.VERSION.SDK_INT >= 17) {
        return android.provider.Settings.Global.getInt(getApplicationContext().getContentResolver(),
                Settings.Global.DEVELOPMENT_SETTINGS_ENABLED , 0) != 0;
    } else {
        return false;
    }
}

它在 API 26+ 上完美运行,但我刚刚在 API 24 的模拟器上对其进行了测试,无论是否启用了开发人员设置,它都会返回 false。

我错过了什么?< 26 是否有不同的选择?

标签: android

解决方案


通过将默认值更改为 true 来修复它,仅适用于 oreo 下的构建。

public boolean isDevMode() {
   if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        return Settings.Secure.getInt(context.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
   } else {
        return Settings.Secure.getInt(context.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1) != 0;
   }
}

推荐阅读