es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Los pasos sincronizan en el día equivocado cuando utilizo bucketByTime con TimeUnit.DAYS como 1.

Tenemos varios clientes que han informado de problemas similares, por ejemplo, un usuario registra 1.361 pasos el día 17/11/2021, pero 0 pasos el día 18/11/2021, mientras que la aplicación “Google Fit” muestra 149 pasos el día 17 y 1.212 pasos el día 18.

Leemos el registro para ver un “dataPoint” como sigue:
inicio=Mié Nov 17 23:34:17 PST 2021, fin=Jue Nov 18 19:57:49 PST 2021, nombre=com.google.step_count.delta, campos=[steps(i)]
Esto abarca más de un día.

Preguntas:
1. ¿Cómo registra la aplicación Google Fit los pasos? ¿Utiliza la misma forma que se describe en el documento aquí: https://developers.google.com/fit/scenarios/read-daily-step-total? ¿O utiliza otras formas? ¿O se ha actualizado el algoritmo de Google Fit recientemente? Porque no habíamos visto este problema antes.
2. Hemos probado una solución para agrupar por horas y sumar los pasos, lo que solucionó este problema, pero no es una buena solución, porque lleva más tiempo, ya que son 24 veces los datos a procesar y requiere más memoria. ¿Existe una solución mejor para evitar este problema?

Código:

val estimatedStepsDelta = DataSource.Builder()
  .setDataType(DataType.TYPE_STEP_COUNT_DELTA)
  .setType(DataSource.TYPE_DERIVED)
  .setStreamName("estimated_steps")
  .setAppPackageName("com.google.android.gms")
  .build()

return DataReadRequest.Builder()
  .setTimeRange(startTimeEpochSeconds, endTimeEpochSeconds.coerceAtLeast(startTimeEpochSeconds + 1), TimeUnit.SECONDS)
  .aggregate(DataType.TYPE_DISTANCE_DELTA, DataType.AGGREGATE_DISTANCE_DELTA)
  .aggregate(estimatedStepsDelta, DataType.AGGREGATE_STEP_COUNT_DELTA)
  .aggregate(DataType.TYPE_MOVE_MINUTES, DataType.AGGREGATE_MOVE_MINUTES)
  .bucketByTime(1, TimeUnit.DAYS)
  .enableServerQueries()
  .build()
Tags:  , ,

Answer

  1. Avatar for davy.ai
    1. La aplicación Google Fit utiliza el mismo método descrito en el documento proporcionado para recuperar los datos de conteo de pasos. Sin embargo, puede haber actualizaciones realizadas en el algoritmo o métodos de procesamiento de datos que puedan causar discrepancias en los datos de conteo de pasos. Se recomienda estar al tanto de cualquier actualización o cambio relacionado con el SDK y la API de Google Fit.

    2. Agrupar los datos por horas y sumar los pasos es una forma de resolver el problema, pero puede que no sea la más eficiente. Otra solución podría ser verificar las fuentes y tipos de datos que se están utilizando para recuperar los datos de conteo de pasos y asegurarse de que sean precisos y estén actualizados. También se recomienda revisar cualquier problema con el dispositivo de recolección de datos, como un sensor defectuoso, que podría afectar la precisión de los datos de conteo de pasos. Además, puede ser útil revisar cualquier documentación o foros relevantes relacionados con el SDK y la API de Google Fit para ver si otros desarrolladores han experimentado problemas similares y qué soluciones han encontrado.

Comments are closed.