Google Analytics与Android:以编程方式设置ga_reportUncaughtExceptions?

TL;博士

有没有一种方法来编程方式启用Google Analytics(v4)的reportUncaughtExceptions,而不使用Android中的xmlconfiguration?

更长的解释

我在Android应用程序中使用Google Analytics(分析)v4,我需要通过构build风格来设置两个不同的跟踪ID。 我使用了一个通用的global_tracker.xmlconfiguration(见下文),但我需要一种方式来根据风格“dynamic注入”跟踪ID。

<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes"> <integer name="ga_sessionTimeout">300</integer> <bool name="ga_autoActivityTracking">true</bool> <bool name="ga_reportUncaughtExceptions">true</bool> <!-- The following value should be replaced with correct property id. --> <string name="ga_trackingId">UA-xxxxxx-xx</string> </resources> 

为了避免在构buildflavor源文件夹中有重复的xmlconfiguration,我使用trackingId直接初始化一个跟踪器,并以编程方式设置属性。

 mGATracker = analytics.newTracker(R.string.ga_code); // this is dynamic depending on flavor mGATracker.setSessionTimeout(300); mGATracker.enableAutoActivityTracking(true); 

有没有办法启用reportUncaughtExceptions而不使用XMLconfiguration?

否在当前版本的API中没有办法做到这一点。 感谢您指出。 我们会研究它,并可能将其添加到即将推出的sdk版本之一。

如果我没有误解你的问题,解决办法如下:

mGATracker是你自己的追踪器。

 mGATracker.enableExceptionReporting(true); 

希望它有帮助,谢谢。

参考: https : //developers.google.com/android/reference/com/google/android/gms/analytics/Tracker#enableExceptionReporting(boolean)

我认为你能够以编程的方式做的最好的是有两个不同的跟踪器xmlconfiguration文件,它们都具有相同的ga_trackingIdga_reportUncaughtExceptions值不同。 使用带有xml资源的GoogleAnalytics.newTracker()方法获取正确的configuration文件,而不是跟踪标识。

 if (buildFlavor == 1) mGATracker = analytics.newTracker(R.xml.tracker_config_1) else mGATracker = analytics.newTracker(R.xml.tracker_config_2) 

请参阅http://developer.android.com/reference/com/google/android/gms/analytics/GoogleAnalytics.html#newTracker (int)

您可以编程设置Analyticsexception处理程序。

 UncaughtExceptionHandler myHandler = new ExceptionReporter( myTracker, // Currently used Tracker. Thread.getDefaultUncaughtExceptionHandler(), // Current default uncaught exception handler. context); // Context of the application. // Make myHandler the new default uncaught exception handler. Thread.setDefaultUncaughtExceptionHandler(myHandler); 

请参阅https://developer.android.com/reference/com/google/android/gms/analytics/ExceptionReporter.html