仅在调试模式下显示菜单项?

9
在我的应用程序中,我创建了一个测试页面,其中包含一些仅供开发人员使用的代码。此页面/活动仅可通过菜单项访问。是否有一种方法可以确定Android应用程序是否在调试模式下运行,并且只有在这种情况下才显示菜单项?
祝好, Goldhorn
3个回答

13

要直接在菜单或其他资源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" ... />

1
并且可以通过编程方式获取该值:DEBUG_MODE = getResources().getBoolean(R.bool.DEBUG); - Chris Knight

3

-6

使用这个技巧

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
}

1
我不认为这正是我要找的。我正在模拟器和设备上进行调试。因此,我不想知道应用程序是否在模拟器或设备上运行。我想知道应用程序是在调试模式还是“生产”模式下运行。 - Goldhorn
哦,抱歉...尝试一下@Vino的答案? - Sherif elKhatib
@Vino的回答正是我在寻找的 :D - Goldhorn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接