android / health-samples

Apache License 2.0
244 stars 138 forks source link

Unsupported aggregation type SpeedSeries_speed_avg #229

Closed yayachang closed 4 months ago

yayachang commented 4 months ago

I upgraded Android targetSdkVersion to 34 and Health Connect library upgraded to implementation "androidx.health.connect:connect-client:1.1.0-alpha07".

When reading exercise data, app encountered the following error:

Fatal Exception: java.lang.IllegalArgumentException: Unsupported aggregation type SpeedSeries_speed_avg
       at androidx.health.connect.client.impl.platform.records.RequestConvertersKt.toAggregationType(RequestConverters.kt:141)
       at androidx.health.connect.client.impl.platform.records.RequestConvertersKt.toPlatformRequest(RequestConverters.kt:104)
       at androidx.health.connect.client.impl.HealthConnectClientUpsideDownImpl$aggregate$2.invokeSuspend(HealthConnectClientUpsideDownImpl.kt:207)
       at androidx.health.connect.client.impl.HealthConnectClientUpsideDownImpl$aggregate$2.invoke(:8)
       at androidx.health.connect.client.impl.HealthConnectClientUpsideDownImpl$aggregate$2.invoke(:2)
       at androidx.health.connect.client.impl.HealthConnectClientUpsideDownImpl.wrapPlatformException(HealthConnectClientUpsideDownImpl.kt:347)
       at androidx.health.connect.client.impl.HealthConnectClientUpsideDownImpl.aggregate(HealthConnectClientUpsideDownImpl.kt:204)
       at com.test.healthconnect.data.HealthConnectManager.readAssociatedSessionData(HealthConnectManager.kt:216)
       at com.test.healthconnect.data.HealthConnectManager$readAssociatedSessionData$1.invokeSuspend(:15)
       at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
       at android.os.Handler.handleCallback(Handler.java:958)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loopOnce(Looper.java:205)
       at android.os.Looper.loop(Looper.java:294)
       at android.app.ActivityThread.main(ActivityThread.java:8194)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)

but aggregateDataTypes remove SPEED related is working. Are there any settings or migrations that I missed?

val aggregateDataTypes = setOf( ExerciseSessionRecord.EXERCISE_DURATION_TOTAL, StepsRecord.COUNT_TOTAL, DistanceRecord.DISTANCE_TOTAL, ActiveCaloriesBurnedRecord.ACTIVE_CALORIES_TOTAL, TotalCaloriesBurnedRecord.ENERGY_TOTAL, ElevationGainedRecord.ELEVATION_GAINED_TOTAL, HeartRateRecord.BPM_AVG, HeartRateRecord.BPM_MAX, HeartRateRecord.BPM_MIN, //SpeedRecord.SPEED_AVG, //SpeedRecord.SPEED_MAX, //SpeedRecord.SPEED_MIN, )

breanatate commented 4 months ago

Thanks for reporting this!

Speed aggregation is not currently supported in the most recent versions of Android 14, and the team is working to re-add support for this. In the meantime, an alternative is to use other indicators, such as distance and/or cadence to approximate speed.