gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:13:25 44 4
gpt4 key购买 nike

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

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。
我看过 this question和其他类似的,但我没有找到一个完整的解决方案。这不是一个重复的问题。

最佳答案

您无法做到比 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)

关于java - 检测是否启用了开发人员选项的万无一失的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63348116/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com