2012-12-21 2 views
9

Meine Frage ist ziemlich einfach: Gibt es eine Möglichkeit, Google Analytics automatisch zu deaktivieren, wenn die Anwendung mit dem Debug-Zertifikat signiert ist? Bedeutet, dass es nur in der Release-Version aktiv sein sollte. Vielen Dank im Voraus.Google Analytics während der Entwicklung deaktivieren

+0

möglich Duplikat [Deaktivieren Google von Android App bei der Prüfung oder der Entwicklung] (http://stackoverflow.com/questions/12314357/disable-googleanalytics-from-android-app-wenn-testen-oder-entwickeln) – Kiran

Antwort

12

Wenn Sie ADT 17 und höher verwenden, können Sie BuildC verwenden onfig Klasse:

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

Die BuildConfig Klasse automatisch wie R.java erzeugt wird. Es enthält nur den booleschen Wert DEBUG, der standardmäßig auf true gesetzt ist, und auf false, wenn Sie eine Apk exportieren.

+0

Vielen Dank, ich werde Ihre Antwort akzeptieren. Aber ich dachte, Google Analytics könnte eine Art von Konfigurations-APIs enthalten, mit denen Sie diese Art von Regeln festlegen können. – Egor

+0

Ich glaube nicht, aber ich könnte falsch liegen. Ich kenne GA nicht sehr gut. –

+2

Vorsicht, scheint BuildConfig.DEBUG Buggy zu sein: https://code.google.com/p/android/issues/detail?id=27940 –

2

Nun können Sie einstellen, nicht aktiv sein, leicht genug:

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

ich in der Regel nur die Hardware überprüfen Seriennummer von einigen bekannten Vorrichtungen zum Testen verwendet:

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

Wo getHardwareSerial() ist:

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; 
    } 
1

Mit der neuesten Version von Google Analytics, sollten Sie den folgenden Code verwenden:

if(BuildConfig.DEBUG){ 
    GoogleAnalytics.getInstance(this).setDryRun(true); 
}