7

tl;博士

有没有一种方法可以在不使用 Android 中的 xml 配置的情况下以编程方式为 Google Analytics(v4)启用 reportUncaughtExceptions?

更长的解释

我在 Android 应用程序中使用 Google Analytics v4,我需要一种方法来通过构建风格设置两个不同的跟踪 ID。我使用的是通用的 global_tracker.xml 配置(见下文),尽管我需要一种基于风味“动态注入”跟踪 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>

为了避免在构建风味源文件夹中出现重复的 xml 配置,我直接使用 trackingId 初始化跟踪器并以编程方式设置属性。

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

有没有办法在不使用 xml 配置的情况下启用 reportUncaughtExceptions?

4

4 回答 4

7

如果我没有误解您的问题,解决方案如下:

mGATracker 是您自己的跟踪器。

mGATracker.enableExceptionReporting(true);

希望对你有帮助,谢谢。

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

于 2014-10-20T01:34:57.010 回答
4

否 在当前版本的 API 中无法做到这一点。感谢您指出这一点。我们将对其进行研究,并可能将其添加到即将发布的 sdk 版本之一中。

于 2014-04-04T01:15:35.970 回答
2

我认为你能以编程方式做的最好的事情就是拥有两个不同的跟踪器 xml 配置文件,它们都具有相同ga_trackingId但不同的ga_reportUncaughtExceptions. 使用GoogleAnalytics.newTracker()带有 xml 资源的方法来获取正确的配置文件,而不是 trackingId。

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)

于 2014-04-04T00:40:16.567 回答
1

您可以以编程方式设置 Analytics 异常处理程序。

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查看更多信息

于 2014-05-22T03:37:51.753 回答