Obtener cubos más pequeños de GoogleFit no funciona
Estoy tratando de obtener datos de GoogleFit con cubos de 15 minutos para las últimas 2 semanas. Pero por alguna razón la llamada a la HistoryApi
nunca termina, incluso si espero unos minutos. Cuando se utilizan cubos de 1 hora, regresa bastante rápido. ¿Hay alguna limitación que no vi?
Mi plan sería conseguir baldes de 15 minutos para el último año o así, pero si ni siquiera 2 semanas de trabajo que va a ser un problema …
- API de Google Fit: sin respuesta de devolución de llamada
- El recuento de pasos recuperado a través de Google Fit Api no coincide con el recuento de pasos mostrado en la aplicación oficial de Google Fit
- ¿Cómo recuperar correctamente el nombre del paquete de la aplicación que inserta datos en Google Fit?
- ¿Cómo obtener la fuente de datos para el recuento de pasos con la API de Google Fit para Android?
- Clase GoogleApiClient no encontrada
Lo que tengo hasta ahora: configuro mi cliente GoogleApi de esta manera:
mClient = new GoogleApiClient.Builder(mContext) .addApi(Fitness.SENSORS_API) .addApi(Fitness.HISTORY_API) .addScope(new Scope(FITNESS_ACTIVITY_READ)) .addConnectionCallbacks( new GoogleApiClient.ConnectionCallbacks() { @Override public void onConnected(Bundle bundle) { fetchHistoryData(); } @Override public void onConnectionSuspended(int i) { // Here I'll handle that case } } ) .enableAutoManage(mContext, 0, new GoogleApiClient.OnConnectionFailedListener() { @Override public void onConnectionFailed(ConnectionResult result) { //Here I'll handle that case } }) .build();
Y luego intento obtener datos como este:
final DataReadRequest readRequest = new DataReadRequest.Builder() .aggregate(DataType.TYPE_STEP_COUNT_DELTA, DataType.AGGREGATE_STEP_COUNT_DELTA) .aggregate(DataType.TYPE_CALORIES_EXPENDED, DataType.AGGREGATE_CALORIES_EXPENDED) .bucketByTime(1, TimeUnit.HOURS) .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) .build(); Fitness.HistoryApi.readData(mClient, readRequest).setResultCallback(new ResultCallback<DataReadResult>() { @Override public void onResult(@NonNull DataReadResult dataReadResult) { handleGoogleFitData(dataReadResult); } });
Que funciona perfectamente bien, pero cuando voy adelante y cambiar el tiempo de cubo a .bucketByTime(15, TimeUnit.MINUTES)
mi onResult nunca se llamará. También noté lo mismo al tener intervalos de 1 hora y volver 1 año.
¿Es esta una limitación de Google-Fit? Al menos no encontré ninguna documentación sobre un límite como este …
También a veces obtener una devolución de llamada de una consulta rápida, a veces simplemente no volverá. ¿Ideas sobre eso?
- Cómo eliminar un permiso agregado debido a Google Fitness API 7.5.0
- API de Google Fit, obteniendo calorías por actividad
- Tienes problemas para conectarte a Google Play Services; Obtener el código de estado Cancelado
- Google Google Fit onConnectionFailed () SIGN_IN_REQUIRED
- Gasto de calorías usando google apto api
- Acceso a Android Wear Fit Data
- Obtenga la actividad actual de Google Fit API Android