使用google-services.json时的autoActivityTracking

Ali*_*Ali 7 android google-analytics

我在google-services.json的内容中读到了google-services.json的用法吗?:在公开发布您的应用程序后,如果没有json文件,它将无法运行.

GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
mTracker = analytics.newTracker(R.xml.global_tracker);
Run Code Online (Sandbox Code Playgroud)

我在另一篇文章中读过autoActivityTracking.我们还可以创建一个xml资源文件,res/xml/并设置我们要跟踪的活动:

        <string name="ga_trackingId">UA-XXXXXX-X</string>

        <bool name="ga_autoActivityTracking">true</bool>

        <screenName name="com.example.android.dinnerapp.MainActivity">
            Main screen
        </screenName>

        <screenName name="com.example.android.dinnerapp.OrderDinnerActivity">
            Order dinner
        </screenName>

        <screenName name="com.example.android.dinnerapp.RemoveMealActivity">
            Eradicate dinner
        </screenName>

        <screenName name="com.example.android.dinnerapp.ShowDinnerActivity">
            Show dinner
        </screenName>

        <screenName name="com.example.android.dinnerapp.ShowRecipeActivity">
            Show recipe
        </screenName>
Run Code Online (Sandbox Code Playgroud)

并使用以下方式进行设置:

GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
mTracker = analytics.newTracker(R.xml.track_app);
Run Code Online (Sandbox Code Playgroud)

我想知道当我们使用json文件时它是如何可行的?

Mal*_*olm 3

我现在偶然发现了同样的问题,做了一些调查并得出结论,这是不可能做到的

从生成资源的 Gradle 插件的来源来看google-services.json,它可以在配置 XML 文件中放入的只是跟踪 id。这是代码的相关部分:

private static String getGlobalTrackerContent(String ga_trackingId) {
    return "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
            "<resources>\n" +
            "    <string name=\"ga_trackingId\">" + ga_trackingId + "</string>\n" +
            "</resources>\n";
}
Run Code Online (Sandbox Code Playgroud)

由于您无法将配置文件一分为二,因此我看不到同时使用这些属性和插件的方法。

我想说你应该只生成一次文件,将它们放入你的资源中,然后删除插件并添加你自己需要的任何字符串。我自己很失望谷歌删除了旧的指令并推出了新的指令,其中涉及使用一些不成熟的解决方案。