使用Android的Google Analytics:以编程方式设置ga_reportUncaughtExceptions?

7

简短概述

如何在Android应用中通过编程的方式启用Google Analytics(v4)的reportUncaughtExceptions功能而无需使用xml配置文件?

详细说明

我正在使用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配置,我直接使用跟踪ID初始化跟踪器,并通过编程方式设置属性。

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

有没有一种方法可以在不使用xml配置的情况下启用reportUncaughtExceptions?
4个回答

7

看一下Tracker.java,它做了Bladerunner在下面建议的事情,而且似乎起作用了。 - BLeB

4

目前的API版本中没有这样做的方法。感谢您指出这一点。我们会研究并可能在SDK的即将推出的版本中添加它。


@Avil,得知这个消息我感到非常失望。这意味着如果没有创建tracker.xml文件,我们无法在Google Analytics v4中动态启用报告异常。 - anticafe

2
我认为你能够以编程方式做到的最好的是,拥有两个不同的跟踪器 XML 配置文件,它们都具有相同的 ga_trackingId,但是 ga_reportUncaughtExceptions 的值不同。使用 GoogleAnalytics.newTracker() 方法和正确配置文件的 xml 资源,而不是跟踪 ID。
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)


谢谢。我知道这是一种可能性。我希望避免需要为每个风味复制整个xml配置...两者之间唯一的区别是跟踪ID。 - loeschg

1
你可以编程设置分析异常处理程序。
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以获取更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接