有没有办法在不使用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>
为了避免在构建flavor源文件夹中有重复的xml配置,我使用trackingId直接初始化一个跟踪器并以编程方式设置属性。
mGATracker = analytics.newTracker(R.string.ga_code); // this is dynamic depending on flavor
mGATracker.setSessionTimeout(300);
mGATracker.enableAutoActivityTracking(true);
有没有办法在不使用xml配置的情况下启用reportUncaughtExceptions?
答案 0 :(得分:7)
如果我没有误解你的问题,解决方案如下:
mGATracker是您自己的追踪器。
mGATracker.enableExceptionReporting(true);
希望它有所帮助,谢谢。
答案 1 :(得分:4)
否在当前版本的API中无法执行此操作。谢谢你指出来了。我们将调查它并可能将其添加到即将发布的sdk版本中。
答案 2 :(得分: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)
答案 3 :(得分: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
了解详情