一种万无一失的方法来检测是否启用了开发人员选项?

班迪

我使用此代码来检测是否在电话上启用了开发人员选项:

int developerOptions = Settings.Secure.getInt(this.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED , 0);

但是,我对此进行了测试,并在少数设备(某些华为电话等)上返回了错误的值。

是否有另一种充分证明方式来检测设备中是否启用了开发人员选项?

我尝试了此方法,但它不起作用(无论如何,我都不希望使用该方法,因为它不美观,我只是在进行测试):

try 
{
    startActivityForResult(new Intent(android.provider.Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS), 8080);
    finishActivity(8080);
    // Developer options enabled
} 
catch (Exception e) 
{
    // Developer options disabled
}

我的应用的最低API级别为21。

我已经看过这个问题以及其他类似的问题,但是我没有找到一个完整的解决方案。这不是重复的问题。

技术博客

您无法做到比Android本身更加安全:

 public static boolean isDevelopmentSettingsEnabled(Context context) {
    final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
    final boolean settingEnabled = Settings.Global.getInt(context.getContentResolver(),
            Settings.Global.DEVELOPMENT_SETTINGS_ENABLED,
            Build.TYPE.equals("eng") ? 1 : 0) != 0;
    final boolean hasRestriction = um.hasUserRestriction(
            UserManager.DISALLOW_DEBUGGING_FEATURES);
    final boolean isAdmin = um.isAdminUser();
    return isAdmin && !hasRestriction && settingEnabled;
}

您的代码很接近,但是没有考虑Build.TYPE.equals(“ eng”)吗?1:0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有一种万无一失的方法来检测我的声卡是否支持5.1环绕声?

来自分类Dev

是否有一种简单的万无一失的方法来将命令从Ubuntu转换为Debian,反之亦然?

来自分类Dev

是否有一种万无一失的简便方法来确定哪些debs意味着ubuntu将在debian上安装

来自分类Dev

在 Win10 中,是否有一种万无一失的方法来发现哪个应用程序正在显示给定的弹出窗口?

来自分类Dev

有没有一种万无一失的方法来给系统足够的时间在运行copytree之前删除文件夹

来自分类Dev

Java中OutOfmemory的万无一失的检测

来自分类Dev

万无一失的分叉?

来自分类Dev

万无一失的分叉?

来自分类Dev

MVC万无一失的验证'Sys is not defined'

来自分类Dev

MVC重新绑定万无一失的验证

来自分类Dev

万无一失的Python计算器

来自分类Dev

确保变量存储/回送所有字符的万无一失的方法?

来自分类Dev

在CentOS上设置主机名和域的万无一失/正确的方法是什么

来自分类Dev

使用万无一失和requiredif来验证字符串字段

来自分类Dev

如果使用枚举,则需要使用万无一失

来自分类Dev

相同字段上的万无一失的多个验证器

来自分类Dev

万无一失的副本超载:如何不照顾应该默认副本的成员?

来自分类Dev

Maven的万无一失找不到ForkedBooter类

来自分类Dev

无法执行Maven的万无一失,插件,但只能用circleci

来自分类Dev

使用扫描仪的万无一失的用户输入程序

来自分类Dev

MVC万无一失的验证要求IfFalse错误地返回错误

来自分类Dev

Maven-万无一失。如何调整报表的详细程度?

来自分类Dev

如何检测设备上是否启用了“开发人员设置”?

来自分类Dev

如何检查是否在Android 4.0.3上针对API 15启用了开发人员选项

来自分类Dev

有没有一种简单的方法来检查是否在系统上启用了CredSSP?

来自分类Dev

使用JUnit平台 - 神火提供商的Java 9模块Maven的万无一失,插件

来自分类Dev

有没有一种方法可以吸引开发人员构建的受众?

来自分类Dev

无法加载的魔力 '测试' - org.apache.maven.plugins:Maven的万无一失,插件:3.0.0-M1:测试

来自分类Dev

一种简单的方法来检测此页面是否位于跨域iframe中

Related 相关文章

  1. 1

    有没有一种万无一失的方法来检测我的声卡是否支持5.1环绕声?

  2. 2

    是否有一种简单的万无一失的方法来将命令从Ubuntu转换为Debian,反之亦然?

  3. 3

    是否有一种万无一失的简便方法来确定哪些debs意味着ubuntu将在debian上安装

  4. 4

    在 Win10 中,是否有一种万无一失的方法来发现哪个应用程序正在显示给定的弹出窗口?

  5. 5

    有没有一种万无一失的方法来给系统足够的时间在运行copytree之前删除文件夹

  6. 6

    Java中OutOfmemory的万无一失的检测

  7. 7

    万无一失的分叉?

  8. 8

    万无一失的分叉?

  9. 9

    MVC万无一失的验证'Sys is not defined'

  10. 10

    MVC重新绑定万无一失的验证

  11. 11

    万无一失的Python计算器

  12. 12

    确保变量存储/回送所有字符的万无一失的方法?

  13. 13

    在CentOS上设置主机名和域的万无一失/正确的方法是什么

  14. 14

    使用万无一失和requiredif来验证字符串字段

  15. 15

    如果使用枚举,则需要使用万无一失

  16. 16

    相同字段上的万无一失的多个验证器

  17. 17

    万无一失的副本超载:如何不照顾应该默认副本的成员?

  18. 18

    Maven的万无一失找不到ForkedBooter类

  19. 19

    无法执行Maven的万无一失,插件,但只能用circleci

  20. 20

    使用扫描仪的万无一失的用户输入程序

  21. 21

    MVC万无一失的验证要求IfFalse错误地返回错误

  22. 22

    Maven-万无一失。如何调整报表的详细程度?

  23. 23

    如何检测设备上是否启用了“开发人员设置”?

  24. 24

    如何检查是否在Android 4.0.3上针对API 15启用了开发人员选项

  25. 25

    有没有一种简单的方法来检查是否在系统上启用了CredSSP?

  26. 26

    使用JUnit平台 - 神火提供商的Java 9模块Maven的万无一失,插件

  27. 27

    有没有一种方法可以吸引开发人员构建的受众?

  28. 28

    无法加载的魔力 '测试' - org.apache.maven.plugins:Maven的万无一失,插件:3.0.0-M1:测试

  29. 29

    一种简单的方法来检测此页面是否位于跨域iframe中

热门标签

归档