Usługi zdrowotne zapewniają pomoc w zakresie: ExerciseEvents
,
który powiadamia aplikację o zdarzeniu podczas ćwiczenia i dostarcza powiązane metadane.
Dodaj zależności
Korzystanie ze zdarzeń związanych z ćwiczeniami wymaga najnowszej wersji pakietu SDK usług zdrowotnych.
Aby dodać zależność od usług zdrowotnych, musisz dodać repozytorium Google Maven do swojego projektu. Więcej informacji: repozytorium Google Maven.
Następnie w pliku build.gradle
na poziomie modułu dodaj tę zależność:
Odlotowe
dependencies { implementation "androidx.health:health-services-client:1.1.0-alpha03" }
Kotlin
dependencies { implementation("androidx.health:health-services-client:1.1.0-alpha03") }
Sprawdź możliwości
Tak jak w przypadku wszystkich ćwiczeń i typów danych w Usługach zdrowotnych, sprawdź funkcje na
start-up. Dla:
ExerciseEvents
w szczególności, oprócz poproszenia o ExerciseCapabilities
,
użyj ExerciseTypeCapabilities.supportedExerciseEvents
aby sprawdzić, które zdarzenia są obsługiwane dla danego ćwiczenia.
Po potwierdzeniu, że konkretna ExerciseEvent
jest obsługiwana,
należy także zapytać o możliwości zdarzenia ćwiczenia za pomocą
getExerciseEventCapabilityDetails
Ten przykład pokazuje, jak wysłać zapytanie o możliwości, aby potwierdzić
Usługa GOLF_SHOT_EVENT
jest obsługiwana, a następnie potwierdź, że GOLF_SHOT_EVENT
obsługuje klasyfikację typu zamachu.
fun handleCapabilities(capabilities: ExerciseCapabilities) {
val golfCapabilities = capabilities.typeToCapabilities[ExerciseType.GOLF]
val golfShotEventSupported =
golfCapabilities
?.supportedExerciseEvents
?.contains(ExerciseEventType.GOLF_SHOT_EVENT)
val golfSwingTypeClassificationSupported =
golfCapabilities
?.getExerciseEventCapabilityDetails(ExerciseEventType.GOLF_SHOT_EVENT)
?.isSwingTypeClassificationSupported ?: false
}
Żądanie zdarzeń ćwiczeń w ćwiczeniu
Aby rozpocząć ćwiczenie i zgłosić żądanie zdarzenia w jego ramach,
zadeklaruj ExerciseConfig
dla ćwiczenia
i dodaj pole dla exerciseEventType
.
Ten przykładowy żądanie GOLF_SHOT_EVENT
w ramach ćwiczenia GOLF
:
val config = ExerciseConfig(
exerciseType = ExerciseType.GOLF,
dataTypes = setOf(....),
// ...
exerciseEventTypes = setOf(ExerciseEventType.GOLF_SHOT_EVENT),
)
Zarejestruj się, aby otrzymywać aktualizacje dotyczące ćwiczeń
Możesz otrzymywać aktualizacje typu ExerciseEvent
w ramach istniejącej infrastruktury
czy Twoja aplikacja otrzymuje aktualizacje dotyczące ćwiczeń.
Ten przykład pokazuje, jak włączyć obsługę aktualizacji GolfShotEvent
:
val callback = object : ExerciseUpdateCallback {
override fun onExerciseUpdateReceived(update: ExerciseUpdate) {
...
}
// [ExerciseEvent] intended to come through with low latency and out of
// band of onExerciseUpdateReceived()
override fun onExerciseEventReceived(event: ExerciseEvent) {
when (event) {
is GolfShotEvent -> {
if (it.swingType == GolfShotSwingType.PUTT) {
println("Putt detected!")
}
}
}
}
}