2012-12-21 35 views
9

Câu hỏi của tôi khá đơn giản: có cách nào để Google Analytics tự động vô hiệu hóa khi ứng dụng được ký bằng chứng chỉ gỡ lỗi không? Có nghĩa là nó chỉ nên hoạt động trong phiên bản phát hành. Cảm ơn bạn trước.Tắt Google Analytics khi đang phát triển

+0

thể trùng lặp của [Disable Google Analytics từ Android App khi kiểm tra hoặc đang phát triển] (http://stackoverflow.com/questions/12314357/disable-googleanalytics-from-android-app-khi-testing-or-development) – Kiran

Trả lời

12

Nếu bạn đang sử dụng ADT 17 trở lên, bạn có thể sử dụng BuildC lớp onfig:

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

Lớp BuildConfig được tự động tạo ra như R.java là. Nó chỉ chứa DEBUG boolean, được đặt thành true theo mặc định và đến false khi bạn xuất một gói ứng dụng.

+0

Cảm ơn bạn, tôi sẽ chấp nhận câu trả lời của bạn. Nhưng tôi nghĩ rằng Google Analytics có thể có một số loại API cấu hình cho phép bạn đặt loại quy tắc này. – Egor

+0

Tôi không nghĩ vậy, nhưng tôi có thể sai. Tôi không quen thuộc với GA. –

+2

Hãy coi chừng, BuildConfig.DEBUG có vẻ là lỗi: https://code.google.com/p/android/issues/detail?id=27940 –

2

Vâng, bạn có thể thiết lập nó để không thể hoạt động dễ dàng đủ:

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

Tôi thường chỉ cần kiểm tra phần cứng số serial của một số thiết bị nổi tiếng dùng để thử nghiệm:

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

đâu getHardwareSerial() là:

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

Với phiên bản mới nhất của Google Analytics, bạn nên sử dụng đoạn mã sau:

if(BuildConfig.DEBUG){ 
    GoogleAnalytics.getInstance(this).setDryRun(true); 
} 
Các vấn đề liên quan