Dịch vụ sức khoẻ hỗ trợ ExerciseEvents
. Dịch vụ này thông báo cho ứng dụng của bạn khi một sự kiện xảy ra trong khi tập thể dục và cung cấp siêu dữ liệu liên quan.
Thêm phần phụ thuộc
Để sử dụng sự kiện tập thể dục, bạn phải dùng phiên bản mới nhất của SDK Dịch vụ sức khoẻ.
Để thêm một phần phụ thuộc trên Dịch vụ sức khoẻ, bạn phải thêm kho lưu trữ Google Maven vào dự án. Để biết thêm thông tin, hãy xem Kho lưu trữ Maven của Google.
Sau đó, trong tệp build.gradle
cấp mô-đun, hãy thêm phần phụ thuộc sau:
Groovy
dependencies { implementation "androidx.health:health-services-client:1.1.0-alpha03" }
Kotlin
dependencies { implementation("androidx.health:health-services-client:1.1.0-alpha03") }
Kiểm tra các chức năng
Tương tự như mọi bài tập thể dục và loại dữ liệu trong Dịch vụ sức khoẻ, hãy kiểm tra các chức năng khi khởi động. Cụ thể, đối với ExerciseEvents
, ngoài việc yêu cầu ExerciseCapabilities
, hãy sử dụng ExerciseTypeCapabilities.supportedExerciseEvents
để xác minh sự kiện tập thể dục nào được hỗ trợ cho bài tập nhất định.
Sau khi xác nhận một ExerciseEvent
cụ thể được hỗ trợ, bạn cũng nên truy vấn các chức năng của sự kiện tập thể dục bằng getExerciseEventCapabilityDetails
.
Ví dụ sau đây cho thấy cách truy vấn các chức năng để xác nhận GOLF_SHOT_EVENT
được hỗ trợ, rồi xác nhận rằng GOLF_SHOT_EVENT
hỗ trợ Phân loại kiểu xoay.
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
}
Yêu cầu sự kiện tập thể dục trong một bài tập
Để bắt đầu bài tập và yêu cầu một sự kiện tập thể dục trong bài tập này, hãy khai báo ExerciseConfig
cho bài tập thể dục và thêm trường cho exerciseEventType
của chúng tôi.
Ví dụ sau đây yêu cầu GOLF_SHOT_EVENT
trong một bài tập thể dục GOLF
:
val config = ExerciseConfig(
exerciseType = ExerciseType.GOLF,
dataTypes = setOf(....),
// ...
exerciseEventTypes = setOf(ExerciseEventType.GOLF_SHOT_EVENT),
)
Đăng ký nhận thông tin cập nhật về sự kiện tập thể dục
Bạn có thể nhận thông tin cập nhật về ExerciseEvent
trong cơ sở hạ tầng mà ứng dụng của bạn hiện có để phục vụ cho việc nhận thông tin cập nhật về bài tập thể dục.
Ví dụ sau đây cho thấy cách tích hợp tính năng hỗ trợ thông tin cập nhật về 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!")
}
}
}
}
}