Google Analytics con Android: ¿Configurar programaticamente ga_reportUncaughtExceptions?

Tl dr

¿Hay alguna forma de activar programaticamente la función reportUncaughtExceptions para Google Analytics (v4) sin usar la configuración xml en Android?

Explicación más larga

Estoy utilizando Google Analytics v4 en una aplicación de Android, y necesito una forma de establecer dos identificadores de seguimiento diferentes por el estilo de construcción. Utilizaba una configuración general global_tracker.xml (ver más abajo), aunque necesito una forma de "inyectar dinámicamente" el ID de seguimiento basado en el sabor.

<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> 

Para evitar duplicar las configuraciones xml en las carpetas de origen de las fuentes de compilación, inicializo un rastreador directamente usando el trackingId y configuro los atributos de forma programática.

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

¿Hay una manera de permitir reportUncaughtExceptions sin usar la configuración xml?

No No hay manera de hacerlo en la versión actual de las API. Gracias por señalarlo. Vamos a mirar en él y, posiblemente, añadirlo en una de las próximas versiones de la sdk.

Si no he entendido mal su pregunta, la solución está abajo:

MGATracker es su propio rastreador.

 mGATracker.enableExceptionReporting(true); 

Espero que ayude, gracias.

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

Creo que lo mejor que podrás hacer de forma programática es tener dos archivos de configuración xml de rastreador diferentes, ambos con el mismo ga_trackingId pero valores diferentes para ga_reportUncaughtExceptions . Utilice el método GoogleAnalytics.newTracker() con el recurso xml para el archivo de configuración correcto en lugar del seguimientoId.

 if (buildFlavor == 1) mGATracker = analytics.newTracker(R.xml.tracker_config_1) else mGATracker = analytics.newTracker(R.xml.tracker_config_2) 

Consulta http://developer.android.com/reference/com/google/android/gms/analytics/GoogleAnalytics.html#newTracker(int)

Puede configurar el manejador de excepciones de Analytics de forma programática.

 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); 

Más información en https://developer.android.com/reference/com/google/android/gms/analytics/ExceptionReporter.html

  • ¿El android string.xml soporta cualquier otra forma de xml?
  • Cómo obtener el ancho en píxeles de vista con android: layout_width = "wrap_content"?
  • Android: cómo escalar una imagen para llenar el fondo de un LinearLayout sin preservar la relación de aspecto?
  • AutoCompleteTextView con lista personalizada: cómo configurar OnItemClickListener
  • El contenido favorito no se muestra correctamente en la vista web
  • Error "No se puede obtener la opinión después del primer layout"
  • Botón de acción flotante de Android Semi Transparente Color de fondo
  • ¿Cómo emitir un mensaje de confirmación (sí / no) de una tarea de Android?
  • La configuración de un indicador personalizado para ExpandableListView no funciona
  • Utilizando diferentes archivos de cadenas en android
  • ¿Cómo establezco el estado de clic para mi botón personalizado?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.