Отключить отслеживание автоматической активности в Firebase

Мне интересно, есть ли способ отключить отслеживание активности транзакций в аналитике? У меня есть иерархия представлений на основе фрагментов, и есть несколько случаев:

  1. Активность, которая всегда имеет один фрагмент.
  2. Активность, которая может иметь разные фрагменты как root.
  3. Активность с корневым фрагментом, который содержит ViewPager с другими фрагментами.

Я использую такой код в фрагментах из документации Firebase для отслеживания пользовательских экранов:

mFirebaseAnalytics.setCurrentScreen(getActivity(), "some_fragment_1", null);

В первом случае я хочу отслеживать только корневой фрагмент. Во втором случае я хочу отслеживать только каждый фрагмент, который становится root. В третьем случае я хочу отслеживать только каждый фрагмент, который становится видимым в ViewPager.

И проблема в том, что я вообще не хочу отслеживать действия, но, к сожалению, Firebase делает это сам по себе - в результате моя статистика выглядит странно, например:

SomeActivity 50%

some_fragment_1 30%

some_fragment_2 20%

Мне не нужна активность в этой статистике, потому что в нее уже включена статистика фрагментов.

Итак, есть ли способ отключить отслеживание активности?

Ответы

Ответ 1

Я знаю, что это скорее взлом, но, похоже, работает с новейшей аналитикой Firebase. Идея заключается в том, что Firebase Analytics использует registerActivityLifecycleCallbacks() для каждой операции, объявленной в манифесте, поэтому отключение этого способа отключает автоматическое создание отчетов об активности.

Поместите этот код в каждый корень Activity, который вы используете.

@Override
public void registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback) {
    // com.google.android.gms.measurement.internal.zzfl for firebase-core:17.1.0, play-services-measurement-impl:17.1.0
    if (!callback.getClass().getName().startsWith("com.google.android.gms.measurement.")){
            super.registerActivityLifecycleCallbacks(callback);
    }
}

Кредиты, найденные на @liudongmiao https://github.com/firebase/quickstart-android/issues/370.