在我的应用程序中,我创建了一个测试页面,其中包含一些仅供开发人员使用的代码。此页面/活动仅可通过菜单项访问。是否有一种方法可以确定Android应用程序是否在调试模式下运行,并且只有在这种情况下才显示菜单项?
祝好, Goldhorn
祝好, Goldhorn
要直接在菜单或其他资源XML中检查调试模式,我们可以像下面一样在build.gradle
中定义resValue。
buildTypes {
release {
...
resValue "bool", "DEBUG", "false"
}
debug {
...
resValue "bool", "DEBUG", "true"
}
}
在generated.xml
中我们会得到:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Automatically generated file. DO NOT MODIFY -->
<!-- Values from build type: debug -->
<bool name="DEBUG">true</bool>
</resources>
现在我们可以使用这些值在menu.xml
中:
<item android:visible="@bool/DEBUG" ... />
您需要检查AndroidManifest.xml中是否设置了debuggable="true"。有关更多信息,请参见此帖子 - 如何从代码中获取androidManifest的“debuggable”值?
使用这个技巧
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String nOp = tm.getNetworkOperatorName();
if("Android".equals(nOp)) {
// ADD YOUR MENUS FOR EMULATOR
}
else {
// ADD YOUR MENUS FOR DEVICE
}
DEBUG_MODE = getResources().getBoolean(R.bool.DEBUG);
- Chris Knight