9

我的问题很简单:当应用程序使用调试证书签名时,有什么方法可以自动禁用 Google Analytics?意味着它应该仅在发布版本中处于活动状态。先感谢您。

4

3 回答 3

12

如果您使用的是 ADT 17 及更高版本,则可以使用 BuildConfig 类:

if(BuildConfig.DEBUG) {
    GoogleAnalytics googleAnalytics = GoogleAnalytics.getInstance(getApplicationContext());
    googleAnalytics.setAppOptOut(true);
}

该类BuildConfig是自动生成R.java的。它仅包含DEBUG布尔值,true默认情况下设置为,false导出 apk 时设置为。

于 2012-12-21T12:47:28.410 回答
2

好吧,您可以将其设置为不太容易激活:

if (...) {
  GoogleAnalytics ga= GoogleAnalytics.getInstance(getApplicationContext());
  ga.setAppOptOut(true);
}

我通常只是检查一些用于测试的已知设备的硬件序列号:

if (Arrays.asList("x", "y").contains(getHardwareSerial()))

在哪里getHardwareSerial()

public static String getHardwareSerial() {
        try {
            Field serialField = Build.class.getDeclaredField("SERIAL");
            return (String) serialField.get(null);
        } catch (NoSuchFieldException nsf) {
        } catch (IllegalAccessException ia) {
        }
        return Build.UNKNOWN;
    }
于 2012-12-21T12:45:16.783 回答
1

使用最新版本的 Google Analytics,您应该使用以下代码:

if(BuildConfig.DEBUG){
    GoogleAnalytics.getInstance(this).setDryRun(true);
}
于 2015-01-25T13:18:55.137 回答