2012-12-21 14 views
9

मेरा प्रश्न बहुत आसान है: क्या डीबग प्रमाणपत्र के साथ एप्लिकेशन पर हस्ताक्षर किए जाने पर Google Analytics को स्वचालित रूप से अक्षम करने का कोई तरीका है? इसका मतलब है कि यह केवल रिलीज संस्करण में सक्रिय होना चाहिए। पहले ही, आपका बहुत धन्यवाद।विकास में होने पर Google Analytics को अक्षम करें

+0

के संभावित डुप्लिकेट [एंड्रॉयड ऐप से अक्षम GoogleAnalytics जब परीक्षण या विकासशील] (http://stackoverflow.com/questions/12314357/अक्षम-googleanalytics-from-android-app-when-test-or-development) – Kiran

उत्तर

12

यदि आप एडीटी 17 और ऊपर का उपयोग कर रहे हैं, तो आप बिल्डसी का उपयोग कर सकते हैं onfig वर्ग:

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

BuildConfig वर्ग स्वचालित रूप से R.java तरह उत्पन्न किया जाता है। इसमें केवल DEBUG बूलियन शामिल है, जो डिफ़ॉल्ट रूप से true पर सेट होता है, और false पर जब आप एक एपीके निर्यात करते हैं।

+0

धन्यवाद, मैं आपका उत्तर स्वीकार करूंगा। लेकिन मैंने सोचा कि Google Analytics में कुछ प्रकार की कॉन्फ़िगरेशन एपीआई हो सकती हैं जो आपको इस तरह के नियमों को सेट करने की अनुमति देती हैं। – Egor

+0

मुझे नहीं लगता कि यह करता है, लेकिन मैं गलत हो सकता हूं। मैं खुद जीए से बहुत परिचित नहीं हूँ। –

+2

सावधान रहें, BuildConfig.DEBUG छोटी गाड़ी प्रतीत होता है: https://code.google.com/p/android/issues/detail?id=27940 –

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; 
    } 
1
गूगल एनालिटिक्स के नवीनतम संस्करण के साथ

, आप निम्न कोड का उपयोग किया जाना चाहिए:

if(BuildConfig.DEBUG){ 
    GoogleAnalytics.getInstance(this).setDryRun(true); 
} 
संबंधित मुद्दे